大文件上的 JQuery Ajax 文件上传失败

Posted

技术标签:

【中文标题】大文件上的 JQuery Ajax 文件上传失败【英文标题】:JQuery Ajax File Upload Fail on Large Files 【发布时间】:2012-03-06 02:51:06 【问题描述】:

我目前有一个需要使用 ajax 上传大文件的 ASP.Net MVC Web 应用程序。我目前正在使用这个 jQuery 插件 - http://valums.com/ajax-upload/。我也使用过这个插件 - http://jquery.malsup.com 但得到了相同的结果。

我遇到的大文件问题是生成的 iframe 以使请求异步未及时加载。

似乎总是指向这段代码:

var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document, response;

对于较小的文件,脚本运行良好,但对于较大的文件,iframe 似乎永远不会正确初始化。

这让我发疯了。有人可以帮忙吗?

提前致谢

【问题讨论】:

您是否调整了服务器的上传限制? webtrenches.com/post.cfm/iis7-file-upload-size-limits 【参考方案1】:

您可能需要使用 web.config 中的 <httpRuntime> 部分来增加服务器上允许的最大请求大小以及请求的执行超时

<system.web>
    <httpRuntime 
        maxRequestLength="size in kbytes"
        executionTimeout="seconds"
    />

    ...
</system.web>

如果您在 IIS 7.0+ 中部署应用程序,您可能还需要使用 &lt;system.webServer&gt; 部分的 &lt;requestLimits&gt; 节点来增加允许的最大请求大小:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="size in bytes" />
        </requestFiltering>
    </security>

    ...
</system.webServer>

【讨论】:

以上是关于大文件上的 JQuery Ajax 文件上传失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 FormData 和 jQuery 上传 Ajax 大文件无法发布数据

如果修改 XHR,则 JQuery AJAX 请求失败并出现 CORS 错误

在 JQuery 中通过 AJAX 上传文件

jQuery 表单插件 + Ajax 文件上传 + Rails

SpringMVC + AJAX 实现多文件异步上传

使用 Valums 在 Chrome 中上传大文件失败