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

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

(0)

相关推荐

  • 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插件uploadify批量上传文件完整使用教程

    uploadify批量上传文件完整使用教程,供大家参考,具体内容如下 1.首先准备uploadify的js文件,网上一搜一大堆 2.上传页面UpFilePage.aspx 关键代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/h

  • Asp.Net的FileUpload类实现上传文件实例

    本文实例讲述了Asp.Net的FileUpload类实现上传文件的方法.分享给大家供大家参考. 具体功能代码如下: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Web.UI; using System.Web; using System.Web.UI.WebControls; using System.Collections; using System.Dra

  • asp.net中MVC借助Iframe实现无刷新上传文件实例

    本文实例讲述了asp.net中MVC借助Iframe实现无刷新上传文件的方法.分享给大家供大家参考.具体实现方法如下: html: 复制代码 代码如下: <div id="uploadwindow" style="display: none;">     <form action="/ShopActivitys/ImportActivityItems" id="form1" name="form1&

  • 解决.net项目中上传的图片或者文件太大无法上传问题

    最近做项目的时候  用户提出要上传大图片  一张图片有可能十几兆  本来用的第三方的上传控件  有限制图片上传大小的设置 以前设置的是2M  按照用户的要求  以为直接将限制图片上传大小的设置改下就可以了  但是当上传大图片的时 总是异常: 错误消息:超过了最大请求长度 解决方案: 错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S. 修改web.config中配置 <configuration> <system.web> <httpRuntime us

  • asp.net实现上传文件显示本地绝对路径的实例代码

    页面代码主要就是JSview plaincopy to clipboardprint 复制代码 代码如下: <head runat="server">     <title>无标题页</title>     <mce:script language="javascript" type="text/javascript"><!--      function Imagesrc()      { 

  • Asp.net MVC中使用JQuery插件ajaxFileUpload上传文件

    0 ajaxFileUpload简介 ajaxFileUpload插件是一个非常简单的基于Jquery的异步上传文件的插件,使用过程中发现很多与这个同名的,基于原始版本基础之上修改过的插件,文件版本比较多,我把我自己使用的ajaxFileUpload文件上传到博客园上了,想要使用的朋友可以下载:http://xiazai.jb51.net/201611/yuanma/ajaxfileupload(jb51.net).rar. 整个插件源码不到200行,实现非常简单,大致原理就是通过js动态创建隐

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

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

  • asp.net 模拟提交有文件上传的表单(通过http模拟上传文件)

    我们暂且不说如何去模拟数据,通过一个简单的form看看当请求发生时,客户端提交了什么样的数据给服务端. 下面是一个简单的html form,两个文本输入框,一个文件上传(这里我选择一张图片),注意有文件上传的form的enctype属性. 复制代码 代码如下: <form action="sql.aspx" method="post" enctype="multipart/form-data"> <input id="

  • asp.net上传文件到数据库的解决方案

    现在,我们来看存放文件的数据库表结构,这里,我们给出建立表的标准SQL语句: CREATE TABLE tblBooksUpload ( DocID int NOT NULL IDENTITY Primary Key , DocTitle varchar (200) , Doc image, DocType varchar (50) , Entrydate datetime Default GetDate() ) 以上的语句中,我们看到数据表tblBooksUpload包含五个字段: ·字段Do

  • Asp.Net模拟表单提交数据和上传文件的实现代码

    如果你需要跨域上传内容到另外一个域名并且需要获取返回值,使用Asp.Net的作为代理是最好的办法,要是客户端直接提交到iframe中,由于跨域是无法用javascript获取到iframe中返回的内容的.此时需要在自己的网站做一个动态页作为代理,将表单提交到动态页,动态页负责将表单的内容使用WebClient或HttpWebRequest将表单数据再上传到远程服务器,由于在服务器端进行操作,就不存在跨域问题了. WebClient上传只包含键值对的文本信息示例代码: 复制代码 代码如下: str

随机推荐