用ASP.NET上传大文件

转载 2006年06月22日 18:17:00

我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的,可以参考这个帖子研究一下产生这个错误的机理。

handling server error when upload file too large

解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据

  IServiceProvider provider = (IServiceProvider) HttpContext.Current;
  HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
  byte[] bs = wr.GetPreloadedEntityBody();
  ....
  if (!wr.IsEntireEntityBodyIsPreloaded())
  {
        int n = 1024;
        byte[] bs2 = new byte[n];
        while (wr.ReadEntityBody(bs2,n) >0)
       {
             .....
        }
  }

Chris Hynes为我们提供了这样的一个方案(用HttpModule),该方案除了允许你上传大文件外,还能实时显示上传进度:

ASP.NET Upload Magic Part 2

这里有他讲座的PPT文件:

Uploading with ASP.NET (part 1)

Uploading with ASP.NET (part 2)

Asp.net MVC 上传大文件(超过50M)的设置

在上传文件时,比较小的文件会直接上传成功,大的文件页面报错:“文件超过了最大请求长度”。 经过查明: 需要在配置文件里面设置文件上传限定的两个属性值:maxAllowedConte...
  • feiying008
  • feiying008
  • 2017年04月10日 15:50
  • 1904

用ASP.NET上传大文件

用ASP.NET上传大文件 我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处...
  • xiaosky
  • xiaosky
  • 2006年12月04日 16:20
  • 974

用ASP.NET上传大文件

1、客户端表单的编码类型Enctype 设置为multipart/form-data的MIME格式,提交表单使用Http的post方法,象下面这样: <form id="form1" method="...
  • jelink
  • jelink
  • 2006年09月11日 21:40
  • 781

ASP.NET Core 上传大文件无法接收的问题

解决办法:在API项目中配置 1. 在 web.config 文件中 里加入 security> requestFiltering> requestLimits max...
  • king_hh
  • king_hh
  • 2017年03月18日 10:41
  • 1616

解决asp.net上传文件时文件太大导致的错误

即使在web.config中添加了节点和设置依然是不行的,还是报文件太大的错误,                   解决方法需要做到以下三个才能解决问题: 1:在web.co...
  • kimizhou_blog
  • kimizhou_blog
  • 2014年03月19日 17:01
  • 4381

ASP.NET大文件断点上传

前端代码 //全选 function CheckAll(e, itemname) { var aa = docume...
  • KingCruel
  • KingCruel
  • 2013年02月17日 09:54
  • 3838

asp.net用swfupload上传大文件

    月初老板让制作一个网站,网站的管理员有时需要上传较大的文件,但是使用asp.net提供的fileupload控件实在是有点“尴尬”,于是在网上找了一整天asp.net上传大文件的控件,试了N多...
  • llyzcy
  • llyzcy
  • 2008年07月16日 20:53
  • 3260

在ASP.NET MVC中实现大文件异步上传

在ASP.NET中通过HTTP上传大文件是一个由来已久的挑战,它是许多活跃的ASP.NET论坛最常讨论的问题之一,除了处理大文件外,用户还 经常被要求要显示出文件上传的进度,当你需要直接控制从浏览器上...
  • sven_xu
  • sven_xu
  • 2015年06月02日 09:21
  • 986

c# asp.net uploadify 上传大文件 出现的 HTTP 404 问题

公司有个项目要求上传附件大小限制在50MB,原本以为可以轻松搞定。在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. ...
  • panderman
  • panderman
  • 2011年04月13日 13:08
  • 7185

asp.net C# 上传较大文件失败

C#中使用File 上传文件时,上传文件小于2M可以上传成功,上传文件大于2M就会失败,原因是在Web.config中的上传文件限制,默认情况下为2048KB (2M)   解决方法:如下 ...
  • zhensoft163
  • zhensoft163
  • 2012年01月10日 19:27
  • 2940
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用ASP.NET上传大文件
举报原因:
原因补充:

(最多只允许输入30个字)