我有以下HTML代码:
<form action="@Url.Action("SavePicture", "Pictures")" method="post" enctype="multipart/form-data" id="SavePictureForm" target="my_iframe">
<input type="file" name="file" class="fileUpload" multiple accept="image/*" />
</form>
<iframe name="my_iframe" id="my_iframe" src="" class="hhidden"></iframe>
form
用于上传图片。问题是服务器上的web.config
具有文件内容大小限制。
如果我上传了10MB的文件,但服务器最多接受5MB,我将收到错误。
以下是Chrome中错误的显示方式:
我在Global.asax.cs
这样处理错误
protected void Application_Error(object sender, System.EventArgs e)
{
var exle = Context.Server.GetLastError() as System.Web.HttpException;
if (exle != null && exle.WebEventCode == System.Web.Management.WebEventCodes.RuntimeErrorPostTooLarge)
{
HandlePostTooLargeError();
}
}
private void HandlePostTooLargeError()
{
Server.ClearError();
this.Context.Response.ClearHeaders();
this.Context.Response.ClearContent();
this.Context.Response.StatusCode = 503;
this.Context.Response.Status = "503 Image too large";
this.Context.Response.StatusDescription = "Image too large";
this.Context.Response.Flush();
this.Context.Response.End();
}
我的问题是除了Internet Explorer之外的所有浏览器都会显示一个对话框,其中包含“图像太大”的消息。
Internet Explorer在内部处理表单帖子,获取503
错误代码但不执行任何操作。 (我可以在Developer Tools
,Network
标签中看到这一点
这是开发者工具/网络
捕获的IE的表单后期响应
然而,这个错误只出现在IE的开发者工具中,用户无法猜出是什么问题。
我需要一个解决方案来告知用户上传因特定原因而失败,但我无法找到问题的解决方案。
是否可以捕获表单帖子的响应并将其显示给用户?