netcore 图片 文件大小_.net Core 2.0文件上传大小限制

I'm having trouble with uploading large files in a .net core 2.0 MVC web app.

I have seen articles, such as this one, which shows how to increase the file size limit in .net core 2.0:

Increase upload request length limit in Kestrel

So, following the example I have tried both options. I currently have this in my Program.cs:

public static IWebHost BuildWebHost(string[] args) =>

WebHost.CreateDefaultBuilder(args)

.UseStartup()

.UseKestrel(options => options.Limits.MaxRequestBodySize = null)

.Build();

... and my ajax file upload method on the controller looks like this:

[HttpPost]

[RequestSizeLimit(1_074_790_400)]

[Route("api/article/uploadfile/{mediaType}")]

public async Task UploadFile(string mediaType)

I'm access the uploaded files using Request.Form.Files

The javascript on the view looks like this:

$('#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);

}

});

}

}

The problem is, even with the changes to increase the upload limit in place, I am get the response:

Failed to load resource: the server responded with a status of 500 ()

If I put a break-point on the first line of the controller method it never hits it so it doesn't appear to be a problem with this code.

Everything works fine with small files size but when I try to upload a file which is 538,286 KB in size it will fail.

Can anyone help with this?

Update:

For further information, the problem seems to occur when the upload file size is somewhere between 122,211 KB and 137,840 KB regardless of any RequestSizeLimit settings, and it errors consistently.

Update 2:

I've just updated all .net core and all .net core nuget packages to 2.1 but the problem still exists.

解决方案

To help anyone else with the same problem I have found the answer here:

Max upload size for ASP.MVC CORE website

It turns out that you need to remove the body length limit like this:

services.Configure(x => x.MultipartBodyLengthLimit = 1_074_790_400);

FormOptions can be found in the Microsoft.AspNetCore.Http.Features namespace.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值