.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}" });
}

相关推荐

  1. asp.net表单文件

    2024-01-06 06:06:04       35 阅读
  2. 限制el-upload组件的文件大小

    2024-01-06 06:06:04       69 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 06:06:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 06:06:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 06:06:04       82 阅读
  4. Python语言-面向对象

    2024-01-06 06:06:04       91 阅读

热门阅读

  1. SLB、DMZ、Nginx、Ingress、Gateway、Kibana和Grafana

    2024-01-06 06:06:04       64 阅读
  2. 大根堆小根堆

    2024-01-06 06:06:04       53 阅读
  3. 浏览器刷新页面,缓存的处理方式,强制刷新

    2024-01-06 06:06:04       61 阅读
  4. SpringBoot打造高效多级缓存体系

    2024-01-06 06:06:04       49 阅读
  5. jar to dmg app/windows .exe可执行文件打包方法

    2024-01-06 06:06:04       65 阅读
  6. Grafana相关问题及答案(2024)

    2024-01-06 06:06:04       61 阅读
  7. Vue 3.4 发布

    2024-01-06 06:06:04       54 阅读
  8. git 常用命令 查看文件内容

    2024-01-06 06:06:04       55 阅读
  9. Python技巧

    2024-01-06 06:06:04       53 阅读