【发布时间】:2020-06-18 12:49:56
【问题描述】:
我正在使用带有 MVC Core 3.1 和 Kestrel 的 dropzonejs,并尝试上传 200+ MB 的文件,但发布的文件始终为空
这是我的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>();
});
当我上传小于 5 MB 的 .mp4 文件时,它可以正常工作,但 237 MB 的 .mp4 我的“文件”和“控制器”中的“id”为空,并且没有发生错误。
如何解决这个问题?
【问题讨论】:
标签: asp.net-core-mvc dropzone.js kestrel-http-server