.NET的file文件上传控件使用方法 修改web.config文件上传大文件_实用技巧

修改Webcong文件:

以下为引用的内容:

复制代码 代码如下:

<system.web>
<httpRuntime maxRequestLength="40690"
useFullyQualifiedRedirectUrl="true"
executionTimeout="6000"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>
</system.web>

其中与上传有密切关系的是:

复制代码 代码如下:

maxRequestLength

指示 ASP.NET 支持的最大文件上载大小。

该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。

指定的大小以 KB 为单位。

默认值为 4096 KB (4 MB)。

复制代码 代码如下:

executionTimeout

指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。

单位为秒,在上传大的文件时把这个设的大一些。

如果服务器内存512M,已可上传大小160M的文件。(没试过,csdn上众帖子的一致意见。)

到这里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>");
}
}
}

时间: 2024-08-03 17:34:52

.NET的file文件上传控件使用方法 修改web.config文件上传大文件_实用技巧的相关文章

AspNetPager分页控件源代码(Version 4.2)第1/2页_实用技巧

//AspNetPager分页控件源代码(Version 4.2): using System; using System.IO; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Collections.Specialized; using System.Text; using System.Componen

Repeater控件动态变更列(Header,Item和Foot)信息(重构cs)_实用技巧

早上有分享<Repeater控件动态变更列(Header,Item和Foot)信息> ,是动态变更一些列的内容. 虽然它算不上是完全动态化,但它已经达到初期想要的效果.如果你稍有仔细,也能轻易把它弄出来.现另开一篇,Insus.NET不是重新另外写,而是想重构cs的代码,因为前一篇的代码虽然简单,但代码冗余过多. 重构开始:首先把这五个变量删除,因为在重构过程中,已经不需要这五个变量了. 复制代码 代码如下: //宣告5个变量,将用来存储那5个月份每个部分的数量 decimal c1, c2,

Repeater控件动态变更列(Header,Item和Foot)信息实现思路_实用技巧

需求开发一个小报表,显示最近五个月的summary的数量统计,报表会随月份的变化而变化,如下图.第一列[Department]固定,第二至第六列,也就是说Nov 2012 这列会在下月的时候消失,其后的列会向前移,最后一列Mar 2013 会变为Apr 2013. 下图中,最底一行是显示每一列的总数(除第一列外). 为了这个报表,Insus.NET决定使用Repeater控件来实现.难度在于动态显法第二列至第六列的列名,以及绑定数据.最后一行计算总计的,只要完成上面的动态绑定之后,也算不上问题,

asp.net ASPxTextBox等控件实现&amp;quot;回车模拟Tab&amp;quot;的 常用代码整理_实用技巧

近期在做一个Web项目,我使用DevExpress第三方控件. 由于该控件使用技巧中文资料较少,还真够呛的,只能边摸索,边开发. 今天我要实现一些编辑框如ASPxTextBox.ASPxComboBox等控件回车模拟Tab的功能.这没办法,用户用惯了回车,讨厌按Tab来移动焦点(鼠标点击更麻烦). 以ASPxTextBox为例,在ClientSideEvents属性中可设置许多客户端JavaScript代码,其中KeyPress就是我要写的. 首先,得准备要模拟Tab的JS代码,这网上很多,我随

Repeater控件实现编辑、更新、删除等操作示例代码_实用技巧

如何在Repeater控件中实现像GridView控件一样的编辑.更新.删除功能? 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); } } private void BindGrid() { string strSQL = "SELECT * FROM [User]"; OleDbConnection objConnection =

asp.net GridView控件中模板列CheckBox全选、反选、取消_实用技巧

复制代码 代码如下: using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebC

ajaxtoolkit-使用ToolkitScriptManager控件报错,web.config也配置了,大哥们帮个忙吧!!!!!

问题描述 使用ToolkitScriptManager控件报错,web.config也配置了,大哥们帮个忙吧!!!!! 使用ToolkitScriptManager控件老提示 'Sys' 未定义,网上找了各种办法都没能解决,不影响功能但总是报错,希望各位帮个忙吧,跪求答案!!!!!!!错误如下:Sys.WebForms.PageRequestManager._initialize('ToolkitScriptManager1' 'form1' [] [] [] 90 '');Microsoft

ploadify上传控件问题-.NET页面多个Uploadify上传控件,上传失败!

问题描述 .NET页面多个Uploadify上传控件,上传失败! 今天遇到一个很棘手的问题,我一个页面中加了四个Uploadify上传控件.但是点击浏览按钮时选择文件后之后排在最后一个的上传控件可以正常上传文件.其他几个上传控件都选择文件之后均没有反应!也没有报什么js错误,不知道什么原因,有遇到类似此类问题的同行吗?急等大家的指点!!! 解决方案 用fiddler调试下,有没有上传的数据产生,表单名字是什么,等等,看看你是不是脚本写错了.

asp.net silverlight批量上传控件实现方法

    /// <summary>     /// 文件的状态     /// </summary>     internal enum filestatus     {         /// <summary>         /// 准备就绪,等待上传         /// </summary>         ready = 0,         /// <summary>         /// 正在上传中         /// &