修改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中设置上传文件的大小方法的更多相关文章

  1. iis7/7.5设置上传文件最大大小

    本编今天接到一个客户的修改,说一个68M的pdf文件上传不上去,但是我本地开启断点调试了好几遍,都没有问题,能正常上传文件,由此确定不是代码问题.然后我试着上传5M左右的pdf却能正常的上传,然后上传 ...

  2. springboot 项目打包部署后设置上传文件访问的绝对路径

    1.设置绝对路径 application.properties的配置 #静态资源对外暴露的访问路径 file.staticAccessPath=/upload/** #文件上传目录(注意Linux和W ...

  3. asp.net mvc 3 配置全局错误处理 Web.config中设置CustomError

    摘自: http://www.myexception.cn/web/1130191.html asp.net mvc 配置全局异常处理 Web.config中设置CustomError Web.con ...

  4. Asp.Net中的获取Web.config中设置的参数!(前后台的代码示例)

    一.Web.config中设置代码     <appSettings>         <add key="deleted" value="1" ...

  5. ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

    ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...

  6. ASP.Net调整允许上传文件的大小

    1.用户上传视频文件注意:调整允许上传文件的大小:ASP.Net为了防止过大的http恶意请求阻塞网站,所以限定了每次上传文件最大4M,asp.net1.1中把用户上传的文件先放到内存中,2.0后如果 ...

  7. 基于spring-boot的web应用,ckeditor上传文件图片文件

    说来惭愧,这个应用调试,折腾了我一整天,google了很多帖子,才算整明白,今天在这里做个记录和分享吧,也作为自己后续的参考! 第一步,ckeditor(本博文论及的ckeditor版本4.5.6)的 ...

  8. web 表单方式上传文件方法(不用flash插件)

    原理:使用表单的input type="file"标签,通过ajax提交表单请求,后台获取请求中的文件信息,进行文件保存操作 由于我测试用的做了一个上传文件和上传图片方法,所以我有 ...

  9. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(三):设置上传文件夹权限(这里测试用完全共享)

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

随机推荐

  1. hdu5230

    bc41第三题: 由 1 - n-1 这 n-1 个数组成 l - c 到 r - c 闭区间内的数共有多少种组合方法: 据称本来应该也比较简单吧,xiaoxin说了个五边形数,然后纷纷找了五边形数的 ...

  2. MySql5.5安装(windows)

    首先贴出安装包 32位安装包链接:https://pan.baidu.com/s/1AGLpcKv1I4kvWjPsVMyS8Q 密码:xypy 64位安装包链接:https://pan.baidu. ...

  3. C条件编译

    #include <stdio.h> void main() { #ifdef AAA printf("find AAA defined\n"); #else prin ...

  4. MySQL账号安全设置

    ======================================================================== 推荐账号安全设置 在数据库服务器上严格控制操作系统的账 ...

  5. POJ3666序列最小差值

    题目:http://poj.org/problem?id=3666 dp方程可以是 d [ i ] [ j ] = min ( d [ i - 1 ] [ k ] ) + abs ( a [ i ] ...

  6. golang defer的使用

    defer一般用于在函数结束时执行必要的处理工作.例如,关闭文件描述符,关闭网络连接等等. 函数中可以定义多个defer,执行的时候按照先进后出的顺序. defer定义的语句,即使遇到panic,也会 ...

  7. tcp端口检测

    # coding=utf-8 import sys import socket import re def check_server(address, port): s = socket.socket ...

  8. GC之五--SystemGC完全解读

    目录: GC之一--GC 的算法分析.垃圾收集器.内存分配策略介绍 GC之二--GC日志分析(jdk1.8)整理中 GC之三--GC 触发Full GC执行的情况及应对策略 gc之四--Minor G ...

  9. MySQL 报错记录

    #--------------------------------------------------------------------------------------------------- ...

  10. Tornado 框架的使用

    Tornado tornado是一个轻量级python的web框架,他是非阻塞式的,而且速度非常快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着 ...