ホームページ >バックエンド開発 >C#.Net チュートリアル >ASP.NET Core Mvc ファイルのアップロード制限問題の解決例
1. はじめに
ASP.NET Core MVC では、ファイルアップロードのデフォルトの最大アップロードファイルは 20MB ですが、Web を使用せずにどのように設定すればよいかわかりません。 .設定はどこから始めますか?
2. アップロード ファイル サイズの設定
1. アプリケーション レベルの設定
ファイルのアップロード サイズ制限を 60 MB に設定するには、ConfigureServices メソッドに次のコードを追加する必要があります。
public void ConfigureServices(IServiceCollection services) { servicesConfigure<FormOptions>(options => { optionsMultipartBodyLengthLimit = 60000000; }); }
2.アクションレベルの設定
上記のグローバル設定に加えて、フィルターコードをカスタマイズすることで単一のアクションを制御することもできます。
[AttributeUsage(AttributeTargetsClass | AttributeTargetsMethod, AllowMultiple = false, Inherited = true)] public class RequestFormSizeLimitAttribute : Attribute, IAuthorizationFilter, IOrderedFilter { private readonly FormOptions _formOptions; public RequestFormSizeLimitAttribute(int valueCountLimit) { _formOptions = new FormOptions() { ValueCountLimit = valueCountLimit }; } public int Order { get; set; } public void OnAuthorization(AuthorizationFilterContext context) { var features = contextHttpContextFeatures; var formFeature = featuresGet<IFormFeature>(); if (formFeature == null || formFeatureForm == null) { // Request form has not been read yet, so set the limits featuresSet<IFormFeature>(new FormFeature(contextHttpContextRequest, _formOptions)); } } }
ASP.NET Core MVC では、以前のバージョンとは異なり、特定の関数がさまざまな機能にカプセル化されており、HttpContext コンテキストは各機能を管理できる単なるコンテナーです。このフィルターでは、アクションのみがインターセプトされ、特定のアクションによってアップロードされるファイルのサイズを制限するという目的を達成するために、HttpContext 内の FormFeature (フォーム送信機能を担当) がリセットされます。
3.結論
ファイルアップロードのバグを見つけたようですが、バージョン1.0.1で修正されていることが確認されました。バージョン 1.0.0 では、アクションがパラメーターとして IFromFile を設定しない場合、Request.From.Files にアクセスできなくなり、例外が報告されます。
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、PHP 中国語 Web サイトにもアクセスしてください。
ASP.NET Core Mvc におけるファイルのアップロード制限の問題の解決に関するその他の記事については、PHP 中国語 Web サイトに注目してください。