当文件上传超过大小时及时捕获HttpException

时间:2010-12-20 13:01:26

标签: .net asp.net

所以我正在上传文件。我有,在我的web.config中:
<httpRuntime executionTimeout="300" maxRequestLength="5120"/>
所以文件不能超过5MB 我的服务器端代码类似于:

  

protected void button_Click(object sender,EventArgs e){
      尝试       {

    if (fupCV.FileName != "") {
     DirectoryInfo di = new DirectoryInfo(Server.MapPath("CVs"));
     if (!di.Exists)
         di.Create();
     fupCV.SaveAs(di.FullName + "/" + fupCV.FileName);
     //afterwards code    
    }                    
}
catch (HttpException ex) {
    Response.Write(ex.Message);                
} 
     

}

我无法捕获异常,我仍然在'/'应用程序中得到“服务器错误。”

Thanx寻求帮助

2 个答案:

答案 0 :(得分:1)

那是因为请求永远不会到达您的代码,IIS永远不会将请求传递给您的代码,因为它很大。

我想您唯一能做的就是通过ajax上传并控制从服务器返回的错误代码。

答案 1 :(得分:0)

好吧,在停止思考之后,我想到了答案。我可以在web.config中设置一个更大的maxRequestLength,比如20 MB,如果我想要5 MB的限制。然后在提交事件中,在测试文件是否在服务器中之后,我可以用

测试它的大小
fupCV.FileBytes.Length

如果超过5.000.000字节左右则抛出异常。