ASP.Net在web.config中设置上传文件的大小方法
修改Webcong文件:
<system.web>
<httpRuntime maxRequestLength="40960" //即40MB,1KB=1024
useFullyQualifiedRedirectUrl="true"
executionTimeout="6000"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>
</system.web>
其中与上传有密切关系的是:
如果服务器内存512M,已可上传大小160M的文件。
WebConfig配置连接超时
<!--
executionTimeout="90" 改为 executionTimeout="720" by wp 2007.9.4 executionTimeout表示允许执行请求的最大时间限制,单位为秒
maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
-->
<httpRuntime executionTimeout="720" maxRequestLength="65536"
useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
minLocalRequestFreeThreads="4" appRequestQueueLimit="100"
enableVersionHeader="true"/>
<!--
httpRuntime是配置asp.net http运行时设置,以确定如何处理对asp.net应用程序的请求。
executionTimeout:表示允许执行请求的最大时间限制,单位为秒
maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
useFullyQualifiedRedirectUrl:表示指示客户端重定向是否是完全限定的(采用 "http://server/path" 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。false 是默认选项。
minFreeThreads:表示指定允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。默认值为 8。
minLocalRequestFreeThreads:表示ASP.NET
保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入
Web 服务器而导致的死锁。
appRequestQueueLimit:表示ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。
enableVersionHeader:表示指定 ASP.NET 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用。
到这里web.config的设置就已经结束。
可是一旦上传文件的大小超过了这个设置的文件大小范围就会发生如下错误:
该页无法显示
您要查看的页当前不可用。网站可能遇到技术问题,或者您需要调整浏览器设置。
虽然解决不了,那也要捕获这个错误啊!怎么办呢?
最近吃了几条鱼,想了想,由于这个错误是由file控件引发的前台错误,所以在后台想利用try...catch来捕获是行不通的。
于是想到了利用.NET的错误捕获页面的机制来处理。可行哦。
1、先设置web.config
<customErrors mode="On"/>
2、新建一个error.aspx 文件,专门用来捕获错误的。
3、在上传文件的aspx页面的前台页面里添加page指令。ErrorPage="UploadError.aspx"
4、在error.aspx中添加一些代码来判断错误信息是否是file引起的前台错误。
public class UploadError : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex != null)
{
Response.Redirect("../error.aspx");
}
else //前台错误ex为空值
{
Response.Redirect("uploadexcel.aspx?err=1"); //重新跳转到上传页面,加上err参数是为了显示错误信息
}
}
5、显示错误提示。
public class uploadexcel : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
if (Request["err"] == "1")
{
Page.RegisterStartupScript("budget","<script
language = javascript>alert('Upload file has failed ! File size is
too large !')</script>");
}
}
}
缺点:文件太大可能达不到你的要求的。比如你想要限到30M.但你会发现。上传20M时就出错了。因为IIS那里就会认为你进行OS攻击了。把你的页面给喀嚓了。这样子页面就会有问题。所以最好的方法是在客户端用JS进行验证。
web.config配置方法:
maxRequestLength的单位是KB
<?xml version= "1.0 " encoding= "utf-8 " ?>
<configuration>
<system.web>
<httpRuntime
maxRequestLength= "1048576 " //最大长度
executionTimeout= "3600 " //最大响应时间。
/>
</system.web>
</configuration>
ASP.Net在web.config中设置上传文件的大小方法的更多相关文章
- iis7/7.5设置上传文件最大大小
本编今天接到一个客户的修改,说一个68M的pdf文件上传不上去,但是我本地开启断点调试了好几遍,都没有问题,能正常上传文件,由此确定不是代码问题.然后我试着上传5M左右的pdf却能正常的上传,然后上传 ...
- springboot 项目打包部署后设置上传文件访问的绝对路径
1.设置绝对路径 application.properties的配置 #静态资源对外暴露的访问路径 file.staticAccessPath=/upload/** #文件上传目录(注意Linux和W ...
- asp.net mvc 3 配置全局错误处理 Web.config中设置CustomError
摘自: http://www.myexception.cn/web/1130191.html asp.net mvc 配置全局异常处理 Web.config中设置CustomError Web.con ...
- Asp.Net中的获取Web.config中设置的参数!(前后台的代码示例)
一.Web.config中设置代码 <appSettings> <add key="deleted" value="1" ...
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...
- ASP.Net调整允许上传文件的大小
1.用户上传视频文件注意:调整允许上传文件的大小:ASP.Net为了防止过大的http恶意请求阻塞网站,所以限定了每次上传文件最大4M,asp.net1.1中把用户上传的文件先放到内存中,2.0后如果 ...
- 基于spring-boot的web应用,ckeditor上传文件图片文件
说来惭愧,这个应用调试,折腾了我一整天,google了很多帖子,才算整明白,今天在这里做个记录和分享吧,也作为自己后续的参考! 第一步,ckeditor(本博文论及的ckeditor版本4.5.6)的 ...
- web 表单方式上传文件方法(不用flash插件)
原理:使用表单的input type="file"标签,通过ajax提交表单请求,后台获取请求中的文件信息,进行文件保存操作 由于我测试用的做了一个上传文件和上传图片方法,所以我有 ...
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(三):设置上传文件夹权限(这里测试用完全共享)
基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...
随机推荐
- MySQL Inception--原理和注意事项
========================================================= MySQL Inception原理图 ======================= ...
- nyoj 密码宝盒
密码宝盒 时间限制:2000 ms | 内存限制:65535 KB 难度:3 描述 小M得到了一个宝盒,可惜打开这个宝盒需要一组神奇的密码,然而在宝盒的下面 有关于密码的提示信息:密码是一个C进制 ...
- gphoto2 canon eos450d
hjs@ubuntu:~$ gphoto2 --capture-image-and-download ...
- Linux 下V4l2摄像头采集图片,实现yuyv转RGB,RGB转BMP,RGB伸缩,jpeglib 库实现压缩RGB到内存中,JPEG经UDP发送功(转)
./configure CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld --host=arm-linux --prefix=/usr/loca ...
- Spring和Quartz集成
本文转载自:http://blog.csdn.net/u010648555/article/details/54891264 Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企 ...
- 魅族pro6部分应用内adb断开连接
魅族pro6打开支付宝,adb自动断开链接,顶部有Flyme自动保护中. 进入手机管家的设置,将Flyme支付保护关掉 再次进入支付宝页面,adb不会再自动断开链接
- 如何将JQUERY对象转成Javascript对象
问: <div id="test"></div> $("#test") //由Javascript对象转为Jquery对象: 但是如何转 ...
- [UE4]产生开枪特效
- php session保存到memcache或者memcached中
本教程叫你如何将php 的session存储在 memcached中,参考了好多网页,发现错误百出,最后自己还是测试成功了,现在将结果结果分享. 1-)系统环境 : elastix2.4 (cento ...
- Windows7下搭建Eclipse+Python开发环境
机器: Windows7_x86_64 前提: 机器已成功安装Python2.7,并配置好环境变量. 步骤: 一.Eclipse的安装 Eclipse是基于java的一个应用程序,因此需要一个java ...