我正在使用ASP.net和VB.NET。 我可以使用一些验证器来检查上传图像的大小吗? 否则我必须在代码中做些什么来确保用户不上传超过1MB的图像?
p.s的C#代码也可以,我可以使用转换器来VB.NET修改
出于某种原因,当我将maxRequestLength更改为1024(在我的WEB.config中)并上传大小为1.25mb的图像时,我得到Microsoft错误页面,说“Internet Explorer无法显示网页”。我的提交按钮中有一个Try Catch块。如果我从我的Web.config中删除maxRequestLength,那么它可以正常工作。
答案 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上传器组件来验证文件大小客户端,但这需要根据您的解决方案进行安装。