如何限制asp.net中上传文件的大小的代码

 更新时间:2011年10月25日 12:03:39   作者:  
maxRequestLength是控制上传大小得参数请求的最大大小(以千字节为单位)
在web.config中控制上传文件大小的地方:
复制代码 代码如下:

<system.web><httpRuntime executionTimeout="9999" maxRequestLength="2097151"/></system.web>

maxRequestLength是控制上传大小得参数请求的最大大小(以千字节为单位)。默认大小为 4096 KB (4 MB)。ExecutionTimeout 指示在请求被 ASP.NET 自动关闭前允许执行的最大秒数。默认值为 90 秒。单位是秒。详细大家可以看Msdn。

http://msdn.microsoft.com/zh-cn/library/system.web.configuration.httpruntimesection.maxrequestlength%28v=VS.80%29.aspx

解决asp.net上传文件大小限制
对于asp.net,默认只允许上传2m文件,增加如下配置,一般可以自定义最大文件大小.

<httpruntime executimaxrequestlength="40960" usefullyqualifiedredirecturl="false"/>

如果还不行,可以使用思归提供的方案:

我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxrequestlength值并不能完全解决问题,因为asp.net会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到internet explorer显示 "the page cannot be displayed - cannot find server or dns error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的applicati

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)
{
.....
}
}

相关文章

  • Elasticsearch.Net使用教程 MVC4图书管理系统(2)

    Elasticsearch.Net使用教程 MVC4图书管理系统(2)

    这篇文章主要介绍了Elasticsearch.Net使用教程教会大家利用MVC4制作图书管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • asp.net中使用自定义控件的方式实现一个分页控件的代码

    asp.net中使用自定义控件的方式实现一个分页控件的代码

    在web开发中,常常需要显示一些数据,而为了方便排版及浏览,我们只需要显示所有记录中的一部分。一般情况下,我们采用分页来实现这个需求
    2012-10-10
  • .NET中基于事件的异步模式-EAP

    .NET中基于事件的异步模式-EAP

    从.NET 4.5开始,支持的三种异步编程模式:基于事件的异步编程设计模式、异步编程模型、基于任务的编程模型,感兴趣的朋友可以参考下
    2013-01-01
  • .NET桥接模式讲解

    .NET桥接模式讲解

    这篇文章主要为大家详细介绍了ASP.NET桥接模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • C#反射技术的简单操作(读取和设置类的属性)

    C#反射技术的简单操作(读取和设置类的属性)

    反射的作用想必大家都知道了吧,少量属性的自动化操作手动添加几下当然是没有问题的,但是属性数量较多的时候敲起这些繁锁的代码可以困了,再说对扩展和维护性造成很多的不遍,以下代码中如不能直接使用请添加using System.Text;的引用。
    2011-01-01
  • c# 在WebBrowser中用SendMessage模拟鼠标点击

    c# 在WebBrowser中用SendMessage模拟鼠标点击

    想在WebBrowser控件里面模拟鼠标点击,在百度上找了半天,怎么也找不到,还是google强大,在一个国外网站上找到的,代码比较清楚了,不做说明。
    2010-02-02
  • ASP.NET MVC基础

    ASP.NET MVC基础

    这篇文章主要介绍了ASP.NET MVC基础概念、MVC三大组件之间的相互关系、以及asp.net webform模型和ASP.NET MVC模型的关系等基础知识,是我们学习MVC必不可少的知识点,希望对大家能有所帮助
    2014-10-10
  • asp.net 源码保存 用程序分页

    asp.net 源码保存 用程序分页

    asp.net 源码保存 用程序分页实现代码。
    2010-06-06
  • WPF实现渐变淡入淡出的登陆窗口效果

    WPF实现渐变淡入淡出的登陆窗口效果

    这篇文章主要介绍了WPF实现渐变淡入淡出的登陆窗口效果的方法,详细讲述了该效果的实现原理与功能代码,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • C#判断文件路径是否存在或者判断文件是否存在的方法

    C#判断文件路径是否存在或者判断文件是否存在的方法

    判断文件路径是否存在的方法有很多,在本文为大家介绍下c#中时如何判断文件及文件路径是否存在,感兴趣的朋友不要错过
    2013-10-10

最新评论