Ajax 大文件的 FormData 回调失败

Ajax callback with FormData fails for large files

我有一个 input file 控件,我可以在其中上传 any kind 文件。 因此,我正在获取文件和 storing in a FormData 并向我的控制器发送 ajax call。 它适用于图像和小型 .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" />

谁能帮我解决这个问题?

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

适用于ASP、JSP或PHP的任何服务器。可能是配置文件可能不同。

document.getElementById('fileUploadControl').onchange=函数(){

    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) {
    });
};

是的...我找到了@artm solution.Thanks

我已经在 web.config

中更改了 maxRequestLength
<httpRuntime targetFramework="4.5" maxRequestLength="2097151" />