How to Increase upload file size in ASP.NET Core

To increase the upload file size in ASP.NET Core, you typically need to adjust settings in both your application code and your server configuration.

You'll need to configure the maximum request size in your Startup.cs file. This can be done in the ConfigureServices method using the Configure<FormOptions> method:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<FormOptions>(options =>
    {
        options.MultipartBodyLengthLimit = int.MaxValue; // Default value is 128 MB if you don't set
        // options.MultipartBodyLengthLimit = 52428800; // Limit file size to 50MB
    });
}

Adjust the value of MultipartBodyLengthLimit to the desired maximum file size in bytes.

For application running on IIS

services.Configure<IISServerOptions>(options =>
{
    options.MaxRequestBodySize = 52428800; // Limit file size to 50MB
});

For application running on Kestrel:

services.Configure<KestrelServerOptions>(options =>
{
    options.Limits.MaxRequestBodySize = int.MaxValue; // Default value is 30 MB if don't set
});

Adding all of the above options will solve problems related to uploading large files.

If you're hosting your ASP.NET Core application on IIS, you may also need to adjust the request limits in the web.config file:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- The maximum allowed content length for uploads, in bytes -->
        <requestLimits maxAllowedContentLength="52428800" /> <!-- Limit file size to 50MB -->
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

If you want handle request up to 1GB

<system.webServer>
    <security>
        <requestFiltering>
            <!-- Handle requests up to 1 GB -->
            <requestLimits maxAllowedContentLength="1073741824" />
        </requestFiltering>
    </security>
</system.webServer>

Ensure that you're not setting the limit too high, as it could pose security risks like denial-of-service attacks.