2016-07-15 3 views
3

私はASP.NET Core Webアプリケーションを作成しており、javascriptファイルからHttpContextを介してPDFファイルをアップロードしています。したがって、サーバー側でRequest.Form.Fileを使用してファイルをロードしようとすると、FormがSystem.IO.InvalidDataException型の例外をスローしています。フォームメッセージに「マルチパートボディの長さ制限16384を超えました」と表示されます。私はその制限を増やすためにweb.configファイルを編集しようとしましたが、メッセージは常に同じです。 私には何か不足しているか、間違っていると思いますか?Request.Formが例外をスローする

ありがとうございました。何が起こるか見

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, 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 = context.HttpContext.Features; 
     var formFeature = features.Get<IFormFeature>(); 

     if (formFeature == null || formFeature.Form == null) 
     { 
      // Request form has not been read yet, so set the limits 
      features.Set<IFormFeature>(new FormFeature(context.HttpContext.Request, _formOptions)); 
     } 
    } 
} 

をそして、あなたのアクションメソッドにこの属性を追加します:

+0

あなたはFormOptions内MultipartBodyLengthLimitを設定してみてくださいましたか? – sabkaraja

+0

http://stackoverflow.com/a/38360093/1184056 –

+0

アップロードするファイルのサイズはどのくらいですか? –

答えて

2

この属性を定義し

[RequestFormSizeLimit(valueCountLimit: 2147483648)] 
[HttpPost] 
public IActionResult ActionMethod(...) 
{ 
    ... 
} 
+0

@イルミナティ、それは彼がそれを書いたカスタムクラスです。 – tylerjgarland

関連する問題