Javascript 对于大型文件,使用FormData的Ajax回调失败

Javascript 对于大型文件,使用FormData的Ajax回调失败,javascript,ajax,asp.net-mvc,multipartform-data,form-data,Javascript,Ajax,Asp.net Mvc,Multipartform Data,Form Data,我有一个输入文件控件,可以上传任何类型的文件。 因此,我将获取文件并存储在FormData中,并对我的控制器进行ajax调用。 它可以很好地处理图像和小的.mp3文件。 但是当我上传超过5MB的.mp3文件时,它将进入错误功能 我的代码是这样的: document.getElementById('fileUploadControl').onchange = function () { var data = new FormData(); var files =

我有一个
输入文件
控件,可以上传
任何类型的文件。
因此,我将获取文件并
存储在FormData
中,并对我的控制器进行
ajax调用。
它可以很好地处理图像和小的.mp3文件。
但是当我上传超过5MB的.mp3文件时,它将进入错误功能

我的代码是这样的:

 document.getElementById('fileUploadControl').onchange = function () {

        var data = new FormData();
        var files = $("#fileUploadControl").get(0).files;

        for (var i = 0; i < files.length; i++) {
            data.append("UploadedImage" + i, files[i]);
        }

        var ajaxRequest = $.ajax({
            url: '/Main/BroadcastFileUpload/',
            data: data,
            cache: false,
            contentType: false,
            processData: false,
            type: "POST",
            success: LoadImages,
            error: OnLogoFail
        });

        ajaxRequest.done(function (xhr, textStatus) {
        });
    };

 <input type="file" multiple id="fileUploadControl" style="width:0px;height:0px" />
document.getElementById('fileUploadControl')。onchange=function(){
var data=new FormData();
var files=$(“#fileUploadControl”).get(0).files;
对于(var i=0;i

有人能帮我吗?

这主要是因为服务器端的post限制。出于安全考虑,它们有一个默认大小。如果使用Tomcat,可以在server.xml中配置连接器以设置maxPostSize。大多数情况下,默认值是2MB

它适用于任何使用ASP、JSP或PHP的服务器。配置文件可能会有所不同。

document.getElementById('fileUploadControl')。onchange=function(){

var data=new FormData();
var files=$(“#fileUploadControl”).get(0).files;
对于(var i=0;i

是的……我找到了解决方案。多亏了@artm

我已经更改了web.config中的
maxRequestLength

<httpRuntime targetFramework="4.5" maxRequestLength="2097151" />


请参阅此问题很可能与上载限制有关。您必须提供一些有关应用程序后端部分的信息。最重要的信息是它的宿主位置(自宿主,某些版本的IIS),因为这会极大地影响默认限制。或者使用
app.use(express.bodyParser({limit:'50mb'))
for node.js with express:)正是我想要的,因为我没有意识到这是ASP.Net中的一个设置。我想知道为什么我几乎找不到关于这个限制的任何东西,因为我认为这是XHR的一个限制,在我看到这篇文章之前,我一直在用谷歌搜索错误的东西。你节省了我的时间。非常感谢您的解决方案
<httpRuntime targetFramework="4.5" maxRequestLength="2097151" />