繁体   English   中英

处理在web.config中上传的大小超过maxRequestLength的文件

[英]Handling files uploaded with a size greater than maxRequestLength in web.config

在我的web.config中,我的文件上传大小限制为10 MB:

<httpRuntime maxRequestLength="10000" /> <!-- file size limit in KB -->

在我的页面上,我正在检查用户是否没有上传大于5 MB的文件:

protected void cvImageSize_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = (fupFile.PostedFile.InputStream.Length <= 5000000);
}

如果用户尝试上传3 MB文件,则上传正常。 如果用户尝试上载7 MB文件,则会显示来自cvImageSize的错误消息。

如果用户尝试上传13 MB文件...该网站崩溃。 我不确定到底发生了什么,Firefox给了我一个页面说“ 连接被重置。在页面加载时重置了与服务器的连接。

当用户尝试上传大小超过maxRequestLength的文件时,是否有一些异常? 我想在页面上向用户显示错误消息,而不是网站基本崩溃。

还有一个IIS执行超时 - 这可能会导致您的问题。 你也可以提高这个价值。 有关详细信息,请查看此文章: http//aspnetresources.com/articles/dark_side_of_file_uploads

您的基本问题是“验证”(cvImageSize_ServerValidate)确实发生在服务器上。 这意味着必须首先上传文件,以便您的服务器端代码能够验证。

因此,当上传更大的(web.config设置)文件时,服务器会抛出异常,您的代码永远不会有机会进行验证。 无论您如何骰子,用户仍然必须首先将文件上传到您的服务器,以便服务器进行投诉或让您验证大小。

除非您能够使用Html5(和兼容的浏览器) Html5文件上传与进度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM