如何在asp.net core 3中设置文件上传的最小和最大大小? 我试图找到解决此问题的任何方法 在互联网上,我刚刚找到了定义最大尺寸的解决方案
答案 0 :(得分:1)
我认为,如果要检查最小和最大文件大小,对于文件上传,建议您尝试创建custom middleware来检查httpcontentlength,如果http内容长度与最小和最大大小,则可以返回自定义响应。
更多详细信息,您可以参考以下代码:
将以下中间件添加到startup.cs配置方法中:
注意:我使用app.usewhen检查路径,这仅适用于包含“ api”的url路径。如果您想匹配所有请求,则可以直接使用app.Use
。
app.UseWhen(context =>
context.Request.Path.StartsWithSegments("/api"),
CheckRequestLengthAsync);
CheckRequestLengthAsync方法:
private void CheckRequestLengthAsync(IApplicationBuilder app)
{
app.Use(async (context, next) =>
{
if (context.Request.ContentLength <50 && context.Request.ContentLength > 5)
{
context.Response.StatusCode = 500;
context.Response.ContentType = "text/html";
await context.Response.WriteAsync("Not match the content length");
}
else
{
// Do work that doesn't write to the Response.
await next();
// Do other work that doesn't write to the Response.
}
});
}
结果:
答案 1 :(得分:0)
@ brando-zhang的答案已写,但需要稍作修正
if (context.Request.ContentLength <10000 || context.Request.ContentLength > 200000)
允许10kb-200kb