我正在应用文件上传大小限制,该用户无法上传超过30 MB的文件,并在超出限制时给他留言。 我正在使用以下代码。
if (fileUpload.HasFile)
{
if (fileUpload.PostedFile.ContentLength < 30 * 1024 * 1024) // 30 MB
{
if (fileUpload.FileName != null && fileUpload.FileName != "")
{
UploadFile(fileUpload, "flv,mp3", out videoFileName, out uploadError);
if (uploadError != "")
{
lblMessage.Visible = true;
lblMessage.Text = uploadError;
return false;
}
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text = "File size exceeds the Limits. Please try uploading smaller size file.";
return false;
}
}
此代码在Visual Studio中运行良好,但是当我在iis上部署应用程序时,如果我提供超过30 MB的文件,它就不会给我任何消息,并直接上传文件。
我做错了。
此致 卡辛
答案 0 :(得分:2)
在IIS7下运行时您可以在web.config文件中设置文件上载大小限制
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="10485760"/>
</requestFiltering>
</security> </system.webServer>
答案 1 :(得分:2)
您是否使用过标准的maxRequestLength配置属性?很可能它不适合您的需求,但在达不到文件限制的情况下,它可以更好地利用资源。
有关如何处理错误的解释,请参阅A better way of handling maxRequestLength exceptions
<system.web>
<httpRuntime maxRequestLength="31457280" executionTimeout="360"/>
</system.web>
答案 2 :(得分:1)
使用这样的代码,它看起来是这样工作的,我的意思是你的代码只有在完整内容发布到服务器时才会执行。您需要一些额外的工作来验证客户端的大小,或使用某些第三方插件,如uploadify
答案 3 :(得分:1)
只有在上传完成后才能检查上传文件的大小。请检查此链接http://forums.asp.net/t/55127.aspx