无法使用ajax jquery post |上传大型csv文件Asp MVC

时间:2018-01-24 13:19:32

标签: c# jquery asp.net asp.net-mvc azure

我有这个代码可以帮助用户上传csv文件并使用批量上传将其放入SQL SB中。 当我上传大小为30 MB的csv文件时,我能够在本地m / c和azure环境中成功运行它。没有错误,运行正常。

当我尝试仅在天蓝色环境中上传大于30 MB的文件时出现“未找到”错误。任何文件大小在本地m / c中运行良好。

我收到错误结果 - xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("txtHint").innerHTML = this.responseText; get_fb();// THIS } }; 甚至在击中控制器之前。我做错了什么?

cshtml代码:

$("#actionOP").text(err.statusText);

的Web.config:

<input id="postedFile" type="file" accept=".csv" />
        <button onclick="UpClaims();">Upload as Claims Data</button>
        <script type="text/javascript" language="javascript">
            function UpClaims() {
                if (window.FormData !== undefined) {

                    var fileUpload = $("#postedFile").get(0);
                    var files = fileUpload.files;
                    // Create FormData object
                    var fileData = new FormData();
                    // Looping over all files and add it to FormData object
                    for (var i = 0; i < files.length; i++) {
                        fileData.append(files[i].name, files[i]);
                    }

                    $("#divProcessing").show();
                    $.ajax({
                        url: '@Url.Action("UploadClaimsFile", "Home")',
                        type: "POST",
                        cache: false,
                        contentType: false, // Not to set any content header
                        processData: false, // Not to process data
                        data: fileData,
                        success: function (result) {
                            $("#divProcessing").hide();
                            $("#actionOP").text(result);
                            $('#postedFile').val("");
                        },
                        error: function (err) {
                            $("#divProcessing").hide();
                            $("#actionOP").text(err.statusText);
                            $('#postedFile').val("");
                        }
                    });
        } else {
            alert("FormData is not supported.");
        }
    }
        </script>

1 个答案:

答案 0 :(得分:0)

使用的方法是将大文件分成小块。关于此解决方案的文章

Upload large files to MVC / WebAPI using partitioning

  

使用的方法是将大文件分成小块,   上传它们,然后将它们合并在服务器上 - 文件   通过分区转移。文章显示了将文件发送到MVC   来自使用JavaScript的网页和Web表单的服务器   httpclient,可以使用MVC或WebAPI实现。