2017-03-01 23 views
0

ngResourceをAngularと使用して、ファイルをASP.NET Webサービスにアップロードしています。WebApiで大きなファイルをアップロードする

特定のサイズ(約50MB)を超えてファイルを試すまで、すべて正常に動作します。特定のサイズの後のどこかに、FromBodyパラメータがバインドされていないので、私はnull DocumentDTOオブジェクトリファレンスを取得しています。

これを修正する方法はありますか?私のweb.configファイルで

私は、これらの設定があります。

maxAllowedContentLength="500000000" 

と私のコントローラで

maxRequestLength="200000" 

を、私は持っている:

[HttpPost, Route("{id:Guid}")] 
public async Task<IHttpActionResult> Insert([FromUri]Guid id, [FromBody]DocumentDTO documentDTO) 
{ 
    //... 

DocumentDTOは次のとおりです。

public class DocumentDTO 
{ 
    [Required] 
    public Guid Id { get; set; } 

    [DisplayFormat(ConvertEmptyStringToNull = false)] 
    [MaxLength(250)] 
    public string FileName { get; set; } 

    [Required] 
    public string Content { get; set; } 

    [MaxLength(250)] 
    public string ContentType { get; set; } 

} 
私の角度制御装置においては

、私はこのコードを持っている:

vm.document.$save(
      data => { 

       notifications.success("The document has been uploaded to the repository.", "Upload Succeeded"); 

      }, 
      err => { 

       errorService.handleApiError(err, "document", "upload"); 

      }) 
      .finally(() => vm.loading = false); 

vm.document.content値はFileReaderreadAsArrayBufferを呼び出すことによって設定されます。

私が言ったように:これはすべて特定のファイルサイズでうまく動作します。 FileReaderに制限があり、ファイルの内容を正しく設定していない、またはWebApiにモデルバインディングに制限がありますか?

+0

郵便配達員または別のHTTPクライアントを使用して、サーバーへのファイルアップロードをテストしてみてください。 – Padraic

答えて

-1

maxRequestLengthも同様に更新してください。以下は2GBファイルの例です。

<system.web> 
    <httpRuntime maxRequestLength="2097152" /> 
</system.web> 
+0

maxRequestLength = "200000"と設定しているかどうかはわかりません。私のファイルサイズは150MB未満になるので十分です。 – Sean

+0

ああ、はい、私はそれを読むのを忘れました..ここに複製しようとしています。もう1つの選択肢は、ファイルを吐き出してマージすることです[リンク] https://www.codeproject.com/Articles/1034347/Upload-large-files-to-MVC-WebAPI-using-partitionin –

関連する問題