我在 .net core 2.0 MVC Web 應(yīng)用程序中上傳大文件時遇到問題。我看過一些文章,比如這篇文章,它展示了如何在 .net core 2.0 中增加文件大小限制: 增加 Kestrel 中的上傳請求長度限制因此,按照示例,我嘗試了兩種選擇。我目前在 Program.cs 中有這個: public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseKestrel(options => options.Limits.MaxRequestBodySize = null) .Build();...我在控制器上的 ajax 文件上傳方法如下所示: [HttpPost] [RequestSizeLimit(1_074_790_400)] [Route("api/article/uploadfile/{mediaType}")] public async Task<IActionResult> UploadFile(string mediaType)我正在使用 Request.Form.Files視圖上的 javascript 如下所示:$('#upload-videos').change(function () { var files = $("#upload-videos").get(0).files; uploadMedia(false, files);})function uploadMedia(isPhoto, files) { var type; if (isPhoto) { type = "i"; } else { type = "v"; } var data = new FormData(); if (files.length > 0) { for (idx = 0; idx < files.length; idx++) { data.append("fileImage" + idx, files[idx]); } $.ajax({ url: "/api/article/uploadfile/" + type, type: "POST", processData: false, contentType: false, dataType: false, data: data, success: function (jsonData) { refreshUploadedImages(jsonData, isPhoto); } }); }}問題是,即使進(jìn)行了增加上傳限制的更改,我也得到了回應(yīng):加載資源失敗:服務(wù)器響應(yīng)狀態(tài)為 500()如果我在控制器方法的第一行放置一個斷點,它永遠(yuǎn)不會命中它,所以這段代碼似乎沒有問題。對于小文件大小一切正常,但是當(dāng)我嘗試上傳大小為 538,286 KB 的文件時,它會失敗。有人能幫忙嗎?更新:有關(guān)更多信息,無論任何 RequestSizeLimit 設(shè)置如何,當(dāng)上傳文件大小介于 122,211 KB 和 137,840 KB 之間時,似乎都會出現(xiàn)此問題,并且始終出錯。更新 2:我剛剛將所有 .net core 和所有 .net core nuget 包更新到 2.1,但問題仍然存在。
2 回答

心有法竹
TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊
為了幫助其他有同樣問題的人,我在這里找到了答案: Max upload size for ASP.MVC CORE website
事實證明,您需要像這樣刪除主體長度限制:
services.Configure<FormOptions>(x => x.MultipartBodyLengthLimit = 1_074_790_400);
FormOptions
可以在Microsoft.AspNetCore.Http.Features
命名空間中找到。
- 2 回答
- 0 關(guān)注
- 267 瀏覽
添加回答
舉報
0/150
提交
取消