Asp.net core 在asp.net core中设置文件上载的最小和最大文件大小
如何在asp.net core 3中设置文件上载的最小和最大大小? 我试着想办法解决这个问题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
在互联网上,我刚刚找到了一个定义最大大小的解决方案,我认为,如果您想检查文件上传的最小和最大文件大小,我建议您可以尝试创建一个用于检查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-200kbi将文件从网页上传到api,并按如下所示发送文件(请求URL:data:image/jpeg;base64)