如何在asp.net core 2.0中上传大文件

时间:2018-05-01 11:44:07

标签: c# asp.net-mvc asp.net-core

我正在尝试上传大文件,大小超过28 MB(这是.net核心中的默认请求大小)。我有很多文章和官方文件,但没有任何运气。我试过用html格式:

<form asp-action="Upload" asp-controller="Media" method="post" enctype="multipart/form-data">
   <input type="file" name="files" multiple id="inputId" />
   <button type="submit">Ok</button>
</form>

和jQuery AJAX reuqest:

function uploadFiles(inputId) {
    var input = document.getElementById('inputId');
    var files = input.files;
    var formData = new FormData();
    for (var i = 0; i != files.length; i++) {
      formData.append("files", files[i]);
    }
    $.ajax({
      url: "/uploader",
      data: formData,
      processData: false,
      contentType: false,
      type: "POST",
      success: function (data) {
        alert("Files Uploaded!");
      }
    });
};

我的行动如下:

 [DisableRequestSizeLimit]
 public class MediaController : Controller
 {
    [HttpPost]
    public async Task<IActionResult> Upload(IEnumerable<IFormFile> files)
    {
    }
 }

这是我的代码的一部分,对不起,如果有一些类型-o。当我在本地运行它时,没有问题,我能够上传大到28mb的文件,但是当我在Azure Web App上发布它时,我无法上传大于28mb的文件。它会引发404.13错误。试图更改startup.cs和program.cs以添加表单选项和请求正文大小限制,但没有成功。然后我尝试了不同的方法,打开ftp并手动更改了web.config文件(为请求体大小等添加了一些xml代码行)。经过这些更改后,一切正常。经过几天试图自己弄清楚,决定发表一篇文章与我的问题。如果有人有解决方案,请分享。 谢谢你们。

0 个答案:

没有答案