2016-08-13 7 views
1

角度$ httpを使用してサーバーからファイルをダウンロードしています。ファイルの種類は異なる場合があります。 認証のためにリクエストヘッダを設定する必要があります。 ダウンロードが完了すると、ファイルが壊れています!ここ は、ファイルを保存するには、クライアント側での私のコードです:

getFile: function(file) { 
    $http({ 
     method: 'GET', 
     url: 'download' + "/" + file.name, 
     headers: { 
      "X-AUTH-TOKEN": "my-token", 
      Accept: "*/*", 
     } 
    }).success(function(data) { 
     var fileBlob = new Blob([data], { 
      type: '*/*;charset=utf-8' 
     }); 
     saveAs(fileBlob, file.name); 
    }).error(function(err) { 
     console.log('err', err); 
    }); 
} 
+0

は、破損したファイルをバイナリファイルまたはテキストファイルですか? –

+0

* .txtファイルはOKです。 * .pdf、* .docxなどが壊れています –

+0

バイナリファイルをテキストファイルとして保存すると、多くの文字が解釈され、バイナリファイルが破損します。私はそれを切っていないので私の答えを削除しましたが、それはおそらく理由です。 http://stackoverflow.com/questions/23451726/saving-binary-data-as-file-using-javascript-from-a-browser –

答えて

3

私は最終的にこれを追加することによって、それを解決したAJAX要求にコンフィグ:

dataType : "binary", 
    processData : false, 
    responseType : 'arraybuffer' 

「アプリケーションにBLOB型を変更/ octet-stream "

+0

誰もがこれで私を助けることができますか? http://stackoverflow.com/questions/42396959/downloaded-document-getting-corrupted-using-blob-method-in-angularjs – Phoenix

関連する問題