我有以下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 的开发者工具中,用户无法猜测是哪里出了问题。
我需要一个解决方案来通知用户由于特定原因上传失败,但我找不到问题的解决方案。
是否可以捕获表单发布的响应并将其显示给用户?