2016-08-13 2 views
1

각도 $ http를 사용하여 서버에서 파일을 다운로드합니다. 파일 형식이 다를 수 있습니다. 인증을 위해 요청 헤더를 설정해야합니다. 다운로드가 완료되면 파일이 손상되었습니다!

나는 마침내이 아약스 요청에 CONFIGS 추가하여 해결
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 파일은 정상입니다. * .pdf, * .docx 등이 손상되었습니다. –

+0

바이너리 파일을 텍스트 파일로 저장하면 많은 문자가 해석되어 바이너리 파일이 손상됩니다. 나는 그것을 자르지 않았기 때문에 나의 대답을 삭제했다. 그러나 그것은 아마도 이유 일 것이다. http://stackoverflow.com/questions/23451726/saving-binary-data-as-file-using-javascript-from-a-browser –

답변

3

:

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

관련 문제