Asp.Net上传文件并配置可上传大文件的方法

ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。

  • HtmlInputFile - HTML 服务器控件
  • FileUpload - ASP.NET 网页控件

两种控件都允许文件上传,但是 FileUpload 控件自动设置编码格式,然而 HtmlInputFile 控件并不会这样。

1、使用HtmlInputFile文件上传

前台

<form  enctype="multipart/form- data">
  <input type="file" name="myfile"/>
</form>

后台:

//上传文件保存路径
string savePath = Server.MapPath("UploadFiles") + "\\";

//提供对客户端上载文件的访问
HttpFileCollection uploadFiles = System.Web.HttpContext.Current.Request.Files;

for (int i = 0; i < uploadFiles.Count; i++)
{
    System.Web.HttpPostedFile postedFile = uploadFiles[i];
    string fileName = postedFile.FileName;//完整的路径
    fileName = System.IO.Path.GetFileName(postedFile.FileName); //获取到名称
    string fileExtension = System.IO.Path.GetExtension(fileName);//文件的扩展名称
    string type = fileName.Substring(fileName.LastIndexOf(".") + 1);    //类型
    if (uploadFiles[i].ContentLength > 0)
        uploadFiles[i].SaveAs(savePath + fileName);
}

2、使用FileUpload 上传:

FileUpload 类是从 WebControl 类中得出的,并且它继承了它的所有元素,FileUpload 类具有以下这些只读属性:

  • FileBytes:返回一组将要上传文件的字节码
  • FileContent:返回将要被上传的的文件的流对象
  • FileName:返回将以上传的文件名称
  • HasFile:判断控件是否有文件需要上传
  • PostedFile:返回一个关于已上传文件的参考。

发布的文件以 HttpPostedFile 形式的对象进行封装,这个对象可以通过 FileUpload 类的 PostedFile 属性被存取。HttpPostedFile 类具有以下常用的属性:

  • ContentLength:返回已上传的文件的字节大小
  • ContentType:返回已上传的文件的 MIME 类型
  • FileName:返回文件全名
  • InputStream:返回将要被上传的的文件的流对象

前台:

<form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <br /><br />
        <asp:Button ID="btnsave" runat="server" onclick="btnsave_Click"  Text="Save" style="width:85px" />
        <br /><br />
        <asp:Label ID="lblmessage" runat="server" />
    </div>
</form>

后台:

protected void btnsave_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();

    if (FileUpload1.HasFile)
    {
        try
        {
            sb.AppendFormat(" Uploading file: {0}", FileUpload1.FileName);

            //saving the file
            FileUpload1.SaveAs("<c:\\SaveDirectory>" + FileUpload1.FileName);

            //Showing the file information
            sb.AppendFormat("<br/> Save As: {0}", FileUpload1.PostedFile.FileName);
            sb.AppendFormat("<br/> File type: {0}", FileUpload1.PostedFile.ContentType);
            sb.AppendFormat("<br/> File length: {0}", FileUpload1.PostedFile.ContentLength);
            sb.AppendFormat("<br/> File name: {0}", FileUpload1.PostedFile.FileName);

        }
        catch (Exception ex)
        {
            sb.Append("<br/> Error <br/>");
            sb.AppendFormat("Unable to save file <br/> {0}", ex.Message);
        }
    }
    else
    {
        lblmessage.Text = sb.ToString();
    }
}

3、配置可上传大文件

Web.config配置可上传大文件,asp.net默认情况之下只能上传4MB,另外一点就是,maxRequestLength单位是MB。

<system.web>
    <httpRuntime maxRequestLength="102400" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true"/>
</system.web>

到此这篇关于Asp.Net上传文件并配置可上传大文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Asp.NET控制文件上传的大小方法(超简单)

    在web.config中的system.web 节点下添加如下代码: 第2行的maxRequestLength="8192",这里限制最大为8MB,可以自行设置.executionTimeout="800",executionTimeout预设(即默认)是 90 秒 <system.web> <httpRuntime maxRequestLength="8192" executionTimeout="800"

  • Asp.Net修改上传文件大小限制方法

    话不多说,随小编一起看看下面代码吧 i. Configuration节点下 <system.webServer> <security> <requestFiltering> <!--单位为字节 maxAllowedContentLength--> <requestLimits maxAllowedContentLength="2097151000"/> </requestFiltering> </securi

  • asp.net大文件上传解决方案实例代码

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传 可以带参数 [HttpPost("upload")] public JsonResult uploadProject(IFormFile file, string userId) { if (file != null) { var fileDir = "D:\\aaa"

  • asp.net fileupload控件上传文件与多文件上传

    1.前台文件 Default.aspx: <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

  • ASP.NET文件上传Upload的实现方法

    本文实例为大家分享了ASP.NET 文件上传,供大家参考,具体内容如下 1.最近应项目开发的需求要实现附件的异步上传和下载. 2.上传:文件上传到指定的路径下,并返回上传文件的信息给前端界面,如:文件的图标.上传的文件名.文件的大小. 3.上传后,在前端界面上显示上传的文件信息,点击文件名实现将上传的文件下载到本地. 4.先展示一下Demo运行的效果图: 点击提交后: 点击文件名实现下载到本地: 5.下面就给出前台代码: <!DOCTYPE html> <html> <hea

  • ASP.NET中FileUpload文件上传控件应用实例

    使用 FileUpload 控件,可以为用户提供一种将文件从用户的计算机发送到服务器的方法.该控件在允许用户上载图片.文本文件或其他文件时很有用.要上载的文件将在回发期间作为浏览器请求的一部分提交给服务器.在文件上载完毕后,您可以用代码管理该文件. 大致了解了一下FileUpload,让我们来看一下FileUpload几个实际应用中问题的处理方法. 1.一次上传多个文件 要一次上传多个文件,我们可以像传单个文件那样对每个文件单独进行处理,除此之外,我们还可以使用HttpFileCollectio

  • asp.net单文件带进度条上传的解决方案

    最近做项目中遇到很多问题,比如带进度条的文件上传,看了网上很多资料还没找到真正意义上的ASP.NET实现进度条上传(可能是我没找到),下面我来跟大家分享一下我实现的这个程序. 首先看下界面效果,当然你可以完全修改界面为你自己所用. 先解释一下这个程序,该程序采用了jquery框架,实现了小文件上传,不超过80Mb,可以在web.config文件中进行相应的配置,但是有个最大值,具体需要查看msdn.开发环境采用visual studio 2013 .net framework 4.5,运行的时候

  • ASP.NET实现大文件上传功能

    需要下载NeatUpload插件 上传页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="_Default" %> <%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.Neat

  • Asp.Net上传文件并配置可上传大文件的方法

    ASP.NET 包含两个控件可以使用户向网页服务器上传文件.一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它. HtmlInputFile - HTML 服务器控件 FileUpload - ASP.NET 网页控件 两种控件都允许文件上传,但是 FileUpload 控件自动设置编码格式,然而 HtmlInputFile 控件并不会这样. 1.使用HtmlInputFile文件上传 前台 <form enctype="multipart/form- data

  • PHP文件上传问题汇总(文件大小检测、大文件上传处理)

    由于涉及到本地和服务器两方面的安全问题,所以基于input type="file"形式的页面文件上传一直处于一个很尴尬的位置.一方面,用户不希望隐私泄露,所以浏览器无法对用户在上传时选择的文件做有效的判 断.另一方面,为了服务器端的安全,减轻传输负担,系统又希望能在用户开始上传之前就将非法的文件拒之门外. 一来一去,基于原始input方式的上传,成为网络存储网站避之唯恐不及的遗留性问题,也造就了现在千奇百怪的插件.上传客户端. input方式的上传就如此之差么?当然不是.上传文件不大的

  • Electron中实现大文件上传和断点续传功能

    Electron官网的描述:Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的. 从官网的描述我们可以简单的概括,Electron是开源的框架,可以使用h5来开发跨平台pc桌面应用,这样前端开发这可以开发桌面应用了.由于它是基于Chromium和Node.js开发的,所以在Ele

  • html+ajax实现上传大文件功能

    大家都知道php上传文件有限制,如果没有修改过php.ini文件的话,默认的上传大小限制为2M,那么该如何上传大文件了,比如说上传一个1G多的大文件,可以使用大文件切割上传的方式来解决. 何为大文件切割上传? 原理:利用HTML5的新特性,将文件内容切割成分段的二进制信息,然后每次向服务器上传一段,而服务器,只需要把我们每次上传的二进制信息整合存储到一个文件中,那么最后这个文件就是所上传的文件. 由于php.ini默认的上传大小为2M,如果每批都上传2M,我测试的时候时间比较长,这里我将其限制大

  • Java实现浏览器端大文件分片上传

    目录 背景介绍 项目介绍 需要知识点 启动项目 项目示范 核心讲解 核心原理 功能分析 分块上传 秒传功能 断点续传 总结 参考文献 背景介绍   Breakpoint-http,是不是觉得这个名字有点low,break point断点.这是一个大文件上传的一种实现.因为本来很久没写过前端了,本来想自己好好写一番js,可惜因为种种原因而作罢了.该项目是基于一款百度开源的前端上传控件:WebUploader(百度开源的东西文档一如既往的差,哈哈.或者是我理解能力差).   Breakpoint-h

  • Vue+Node实现大文件上传和断点续传

    目录 源代码 Blob.slice 切片 初始化文件内容 FormData.append() 大文件上传 断点续传 代码 创建切片 源码 worker 线程通讯的逻辑 断点续传 秒传 源代码 断点续传.分片上传.秒传.重试机制 文件上传是开发中的难点, 大文件上传及断点续传 难点中的细节及核心技术点. element-ui 框架的上传组件,是默认基于文件流的. 数据格式:form-data: 传递的数据: file 文件流信息:filename 文件名字 通过 fileRead.readAsDa

  • PHP大文件切割上传功能实例分析

    本文实例讲述了PHP大文件切割上传功能.分享给大家供大家参考,具体如下: 大家都知道php上传文件有限制,如果没有修改过php.ini文件的话,默认的上传大小限制为2M,那么该如何上传大文件了,比如说上传一个1G多的大文件,可以使用大文件切割上传的方式来解决. 何为大文件切割上传? 原理:利用HTML5的新特性,将文件内容切割成分段的二进制信息,然后每次向服务器上传一段,而服务器,只需要把我们每次上传的二进制信息整合存储到一个文件中,那么最后这个文件就是所上传的文件. 由于php.ini默认的上

  • PHP实现的大文件切割与合并功能示例

    本文实例讲述了PHP实现的大文件切割与合并功能.分享给大家供大家参考,具体如下: 分割代码 split.php <?php $i = 0; //分割的块编号 $fp = fopen("hadoop.sql","rb"); //要分割的文件 $file = fopen("split_hash.txt","a"); //记录分割的信息的文本文件,实际生产环境存在redis更合适 while(!feof($fp)){ $han

  • Python文本处理之按行处理大文件的方法

    以行的形式读出一个文件最简单的方式是使用文件对象的readline().readlines()和xreadlines()方法. Python2.2+为这种频繁的操作提供了一个简化的语法--让文件对象自身在行上高效迭代(这种迭代是严格的向前的). 为了读取整个文件,可能要使用read()方法,且使用字符串的split()来将它拆分WEIGHT行或其他块. 下面是一些例子: >>> for line in open('chap1.txt'): # Python 2.2+ ... # proc

  • linux查找大文件指定内容的实现方法

    以大划小思想,然后重定向. linux有时候会遇到文件很大,关键字查找都要超过整屏,无法查看到所有内容.比如一个非常大的日志文件info.log,我们要查看某段字符所有日志,可以同 cat info.log | grep '1711178968' ,如果显示过多,此时可以加时间,行数控制.也可以通过 '>>'指令. cat info.log | grep '1711178968'   >> temp.log 将中间结果暂存下来,通过more ,less等工具一页页查看temp.lo

随机推荐