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

时间:2020-06-10 21:21:18

标签: asp.net-core asp.net-web-api asp.net-core-3.0

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

2 个答案:

答案 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.
            }


        });
    }

结果:

enter image description here

答案 1 :(得分:0)

@ brando-zhang的答案已写,但需要稍作修正

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

允许10kb-200kb

相关问题