确保用户不要上传大小超过1MB的图像的最佳方法

时间:2009-05-01 10:16:48

标签: c# asp.net vb.net image file-upload

我正在使用ASP.net和VB.NET。 我可以使用一些验证器来检查上传图像的大小吗? 否则我必须在代码中做些什么来确保用户不上传超过1MB的图像?

p.s的C#代码也可以,我可以使用转换器来VB.NET

修改

出于某种原因,当我将maxRequestLength更改为1024(在我的WEB.config中)并上传大小为1.25mb的图像时,我得到Microsoft错误页面,说“Internet Explorer无法显示网页”。我的提交按钮中有一个Try Catch块。如果我从我的Web.config中删除maxRequestLength,那么它可以正常工作。

3 个答案:

答案 0 :(得分:4)

这最终在Web.config中处理。查找httpRuntime部分:

<httpRuntime 
 executionTimeout="110" 
 maxRequestLength="4096" 
/>

httpRuntime中还有许多其他设置,但这两个设置是相关的。这里,maxRequestLength设置为4096或4KB(数字以字节为单位)。因此,请相应地设置此值。此外,您还需要相应地设置executionTimeout,以便为上传最大内容提供合理的时间。

答案 1 :(得分:2)

您可以使用以下代码确定上传文件的大小[以KB为单位],一旦您知道大小,就可以轻松决定是否要继续使用该文件或拒绝上传。

Request.Files(0).ContentLength / 1024

答案 2 :(得分:0)

无法显示网页错误,因为ASP.NET断开了超大请求的连接,以缓解基于超大请求的DOS攻击。要解决这个问题,您必须在iframe中进行上传,然后检测是否发生了错误。您还可以使用客户端上安装的flash,silverlight,java或activex上传器组件来验证文件大小客户端,但这需要根据您的解决方案进行安装。