散分一百,请教一个上传文件的问题

skyaspnet 2010-02-21 10:58:51
在ASP.NET中当上传文件大小超过限制后会报 System.Web.HttpException异常,

我试了在Global.asax中捕获这个异常,但是在上传页面中的逻辑处理代码中

是无法捕获到这个异常的,请教各位大侠是否有办法捕获到这个异常?
...全文
77 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyaspnet 2010-02-21
  • 打赏
  • 举报
回复
引用 10 楼 lemong 的回复:
可以用JS判断上传文件大小,提前避免此类问题


目前没查到有较合理的解决方案,FLASH可以在客户端进行验证,不过现有项目中没有使用FLASH上传
skyaspnet 2010-02-21
  • 打赏
  • 举报
回复
引用 8 楼 huwei12345 的回复:
引用 5 楼 skyaspnet 的回复:
引用 3 楼 andy0618 的回复:为何不去判断上传文件的大小

服务器判断文件大小需要读取全部的文件后才行,会抛出这样的异常的。


是的,确实只要超过大小,提交后就会报错,不管你判断不判断文件大小。。。

一般我们这样做,配置文件里配置一个比较大的文件大小,然后在程序里判断允许上传的文件大小。


感谢您的回复,请问如何判断大小?谢谢!
bobui 2010-02-21
  • 打赏
  • 举报
回复
捕获异常不会,但是我知道在webconfig里面可以配置上传文件的大小,微软默认为4096KB
lemong 2010-02-21
  • 打赏
  • 举报
回复
可以用JS判断上传文件大小,提前避免此类问题
ZHUKY 2010-02-21
  • 打赏
  • 举报
回复
上传的文件的时候就可以取得 上传文件的大小,不就可以判断,再抛异常嚒
huwei12345 2010-02-21
  • 打赏
  • 举报
回复
引用 5 楼 skyaspnet 的回复:
引用 3 楼 andy0618 的回复:为何不去判断上传文件的大小

服务器判断文件大小需要读取全部的文件后才行,会抛出这样的异常的。



是的,确实只要超过大小,提交后就会报错,不管你判断不判断文件大小。。。

一般我们这样做,配置文件里配置一个比较大的文件大小,然后在程序里判断允许上传的文件大小。
skyaspnet 2010-02-21
  • 打赏
  • 举报
回复
引用 6 楼 ylmumu 的回复:
你将你在代码里面设置的  上传文件大小那段代码  try{}catch{}一下啊  看看啊


试过了,无法捕获到这个异常
YLMuMu 2010-02-21
  • 打赏
  • 举报
回复
你将你在代码里面设置的 上传文件大小那段代码 try{}catch{}一下啊 看看啊
skyaspnet 2010-02-21
  • 打赏
  • 举报
回复
引用 3 楼 andy0618 的回复:
为何不去判断上传文件的大小


服务器判断文件大小需要读取全部的文件后才行,会抛出这样的异常的。
YLMuMu 2010-02-21
  • 打赏
  • 举报
回复
你将你在代码里面设置的 上传文件大小 try{}catch{}一下啊 看看啊
andy0618 2010-02-21
  • 打赏
  • 举报
回复
为何不去判断上传文件的大小
灵雨飘零 2010-02-21
  • 打赏
  • 举报
回复
没试过。。。。。

知道不能上传大文件就不要超过最大文件限制。。
或者换个上传控件。比如RadUpload、swfUpload等。。。
skyaspnet 2010-02-21
  • 打赏
  • 举报
回复
补充下:

1. 异常信息是:超过了最大请求长度。

2. 假设用户选择了一个超大的文件。
liuyun1987 2010-02-21
  • 打赏
  • 举报
回复
web.config配制上传文件的大小

<httpRuntime maxRequestLength="1200000" useFullyQualifiedRedirectUrl="true" executionTimeout="900"/>
</system.web>


用javascript脚本在上传前进行判断

<form id="WebForm2" method="post" runat="server" onsubmit="return check()">
 
function check()
{
var filename = document.all("file1").value;
if(filename == "")
{
alert("文件没选择!");
return false;
}
try
{
var stream = new ActiveXObject("ADODB.Stream");
stream.Type = 1;
stream.Open();
stream.LoadFromFile(filename);
alert(stream.Size);
if(stream.Size > 1024000)
{
alert("文件太大, 不让你传!!!");
return false;
}
}
catch(e)
{
alert("IE安全性太高!");
return false;
}
return true;
}
skyaspnet 2010-02-21
  • 打赏
  • 举报
回复
准备结贴。。。。。。。。。。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧