Razor Pages .Net Core - 无法上传大文件/视频

Razor Pages .Net Core - cannot upload large Files / Videos

我正在尝试 'upload' 将视频文件放入我的应用程序并将其传递到数据库。我能够很好地处理图片,但是一旦我尝试更大的/视频文件,我就会收到状态:提交时出现 400 错误代码。

我在代码后面的 OnPostAsync 方法上放置了一个断点,但它没有被击中。 我只有一个标准输入 --> 类型:文件:

从网上看到一些提及,我手动向项目添加了一个 web.config 文件并添加了以下内容:

但是,如果我尝试上传大文件,我仍然会收到 400 错误。我注意到在实际调用中它应该允许 mime 类型:

根据其他建议,我还尝试将以下内容添加到

但得到以下结果:

还有正在填充大文件数据的模型:

还是一样的错误。

我很想听听人们对可能导致我的错误的建议。

在尝试上传大文件的方法之前添加此行。

[RequestFormLimits(MultipartBodyLengthLimit = 104857600)]

通过将以下内容添加到 Startup.cs 文件中,我最终成功实现了此功能:

代码:

        services.Configure<FormOptions>(x =>
        {
            x.ValueLengthLimit = int.MaxValue;
            x.MultipartBodyLengthLimit = int.MaxValue;
            x.MultipartHeadersLengthLimit = int.MaxValue;
        });

        services.Configure<KestrelServerOptions>(options =>
        {
            options.Limits.MaxRequestBodySize = int.MaxValue;
        });

现在我可以按预期加载大文件了。

在ASP.NET Core MVC中,您可以将下面的代码(Attribute)放在您的方法(Action)之前,但是在Razor页面中,我们不能将它放在方法(Handler)之前!并且编译器会通知警告并且代码不起作用!

[RequestFormLimits(MultipartBodyLengthLimit = 104857600)]

因此,在 ASP.NET Core Razor Pages 中,我们应该将以下代码(属性)放在 class(页面模型)之前,而不是方法(处理程序)之前!

 [RequestFormLimits(MultipartBodyLengthLimit = 104857600)]
public class UploadFile : PageModel

...