1

我有以下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 中的样子:

上传大小大于接受的文件时出现 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对表单发布错误的处理

然而这个错误只出现在 IE 的开发者工具中,用户无法猜测是哪里出了问题。

我需要一个解决方案来通知用户由于特定原因上传失败,但我找不到问题的解决方案。

是否可以捕获表单发布的响应并将其显示给用户?

4

0 回答 0