设置最小和最大文件大小用于 asp.net 核心中的文件上传

Set minimum and maximum file size For file upload in asp.net core

如何在 asp.net core 3 中设置文件上传的最小和最大大小? 我试图找到任何方法来解决这个问题 刚刚在网上找到了定义最大尺寸的方案

在我看来,如果你想检查文件上传的最小和最大文件大小,我建议你可以尝试创建一个 custom middleware 来检查 httpcontentlength,如果 http 内容长度没有匹配最小和最大尺寸,然后您可以 return 自定义响应。

更多详情,您可以参考以下代码:

将以下中间件添加到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.
            }


        });
    }

结果:

回答@brando-zhang 已写但需要稍作修改

if (context.Request.ContentLength <10000 || context.Request.ContentLength > 200000)

允许 10kb-200kb