.net6解除文件上传限制。Multipart body length limit 16384 exceeded

在C#中上传文件时如果不修改默认文件的上传大小会提示Multipart body length limit 16384 exceeded这个错误提示表明你的请求中的Multipart body长度超过了16384字节的限制。这通常意味着你正在尝试发送一个太大的请求体,可能是因为包含了太多数据或者太大的文件。要解决这个问题,你可以尝试减少请求体的大小,或者使用其他方法来传输大量数据,比如分块上传或压缩数据。另外,你也可以查看服务端的配置,看是否可以调整Multipart body长度的限制。

在.net6中可以 修改Program.cs文件,添加以下代码

ps:以下代码要添加到var app = builder.Build();之前

builder.WebHost.UseKestrel(options =>
{
    options.Limits.MaxRequestLineSize = 10 * 1024 * 1024;//HTTP 请求行的最大允许大小。 默认为 8kb
    options.Limits.MaxRequestBufferSize = 10 * 1024 * 1024;//请求缓冲区的最大大小。 默认为 1M
    //任何请求正文的最大允许大小(以字节为单位),默认 30,000,000 字节,大约为 28.6MB
    options.Limits.MaxRequestBodySize = 10 * 1024 * 1024;//限制请求长度

});

//上传文件限制
builder.Services.Configure<FormOptions>(x => {
    x.MultipartBodyLengthLimit = 10 * 1024 * 1024; // 10MB  
    x.MemoryBufferThreshold = 1024 * 1024; // 1MB  
});

然后在api方法上标注[DisableRequestSizeLimit]特性

在C#中,[DisableRequestSizeLimit]特性是用于禁用请求大小限制的。当应用程序使用ASP.NET Core处理请求时,可能会受到请求大小限制的影响,这可能会导致一些大型请求被拒绝或截断。使用[DisableRequestSizeLimit]特性可以禁用请求大小限制,允许应用程序处理大型请求而不受限制。这在处理大型文件上传或其他需要处理大型请求的情况下非常有用。

[HttpPost]
[DisableRequestSizeLimit]
public async Task<dynamic> UploadFileAsync()
{
    string fileName = "";string fullPath = "";string fileType = "";
    string Rotate = "0"; string Angle = "";
    try
    {
        if (Request.Form.Files.Count == 0) return Ok(new { ok = false, message = $"Upload Failed:没有文件." });

        var file = Request.Form.Files[0];

        if (file.Length < 1) return Ok(new { ok = false, message = $"Upload Failed:文件为空." });
        //代码逻辑
        }
        catch (Exception ex)
{
    Log.Error("Upload Failed.===" + "类型:" + fileType + "   文件名:" + fileName + "  失败原因:" + ex.Message );
    return Ok(new { ok = false, message = $"Upload Failed:{ex.Message}" });
}
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值