Я использую dropzone js с MVC Core 3.1 и Kestrel и пытаюсь загрузить файл размером 200+ МБ, но отправленный файл всегда нулевой
Вот моя конфигурация dropzone
var myDropzone = new Dropzone(document.body, {
url: '@Url.Action("HandleUpload", "Files", new { Id= "Test0001" })',
paramName: "file",
parallelUploads: 1,
maxFilesize: 512,
timeout: 1800000,
thumbnailWidth: 80,
thumbnailHeight: 80,
previewTemplate: previewTemplate,
acceptedFiles: 'image/jpeg,image/x-citrix-jpeg,image/png,image/x-citrix-png,image/x-png,video/mp4,video/quicktime,video/x-ms-wmv,video/x-flv',
autoQueue: false,
previewsContainer: "#previews",
clickable: ".fileinput-button",
dictRemoveFileConfirmation: "Are you sure to remove this file ?"
});
это мой контроллер
[HttpPost]
public async Task<ActionResult> HandleUpload(IFormFile file, string id)
{
//file and id is null with 237MB file
var jwt = new JwtSecurityToken("AccessToken");
var sub = jwt.Subject;
}
и Program.cs
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(kestrelOptions =>
{
kestrelOptions.Limits.MaxRequestBodySize = 545259520; //520 MB
kestrelOptions.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(10);
kestrelOptions.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(10);
kestrelOptions.Limits.MaxConcurrentConnections = 1000;
kestrelOptions.Listen(ipAddress, 443, listenOptions =>
{
listenOptions.UseHttps();
});
});
webBuilder.UseStartup<Startup>();
});
, когда я загружаю файл .mp4 размером менее 5 МБ, он работает нормально, но .mp4 с 237 МБ мои «файл» и «id» в контроллере равны нулю, и ошибок не было.
Как решить эту проблему?