Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在asp.net core中设置文件上载的最小和最大文件大小_Asp.net Core_Asp.net Web Api_Asp.net Core 3.0 - Fatal编程技术网

Asp.net core 在asp.net core中设置文件上载的最小和最大文件大小

Asp.net core 在asp.net core中设置文件上载的最小和最大文件大小,asp.net-core,asp.net-web-api,asp.net-core-3.0,Asp.net Core,Asp.net Web Api,Asp.net Core 3.0,如何在asp.net core 3中设置文件上载的最小和最大大小? 我试着想办法解决这个问题 在互联网上,我刚刚找到了一个定义最大大小的解决方案,我认为,如果您想检查文件上传的最小和最大文件大小,我建议您可以尝试创建一个用于检查httpcontentlength的解决方案,如果http内容长度与最小和最大大小不匹配,那么您可以返回自定义响应 更多详细信息,请参考以下代码: 将以下中间件添加到startup.cs Configure方法中: 注意:我使用app.use检查路径时,这仅适用于包含“a

如何在asp.net core 3中设置文件上载的最小和最大大小? 我试着想办法解决这个问题
在互联网上,我刚刚找到了一个定义最大大小的解决方案,我认为,如果您想检查文件上传的最小和最大文件大小,我建议您可以尝试创建一个用于检查httpcontentlength的解决方案,如果http内容长度与最小和最大大小不匹配,那么您可以返回自定义响应

更多详细信息,请参考以下代码:

将以下中间件添加到startup.cs Configure方法中:

注意:我使用app.use检查路径时,这仅适用于包含“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.
            }


        });
    }
private void CheckRequestLengthAsync(IAApplicationBuilder应用程序)
{
应用程序使用(异步(上下文,下一步)=>
{
if(context.Request.ContentLength 5)
{
context.Response.StatusCode=500;
context.Response.ContentType=“text/html”;
wait context.Response.WriteAsync(“与内容长度不匹配”);
}
其他的
{
//做一些不会写入响应的工作。
等待下一个();
//执行其他不写入响应的工作。
}
});
}
结果:


答案@brando zhang正在编写,但需要稍加修改

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

允许10kb-200kb

i将文件从网页上传到api,并按如下所示发送文件(请求URL:data:image/jpeg;base64)