2017-03-13 2 views
0

다운로드 zip 파일을 다운로드해야하지만 정기적으로 다운로드가 시작되지만 클라이언트는 크기가 15 바이트 밖에되지 않는 손상된 zip 파일을 다운로드합니다.angularjs 손상된 zip 파일 다운로드 내 각도 어플리케이션에서

function() { 
    var data = {} 
    data.files = $scope.selectedFiles 
    FileService.download(data,function(resp){ 
     var blob = new Blob([resp], {type: "application/octet-stream"}) 
     console.log('response',resp) 
     FileSaver.saveAs(blob,'registrazioni.zip',(err) => { 
           console.log('saved success,error',err); 
     })      
    }) 
} 

나는 많은 비슷한 질문을 읽을 수 있지만 그들의 솔루션은 나에게

+0

유용 할 수도있는 [비슷한 질문이 있습니다] (http://stackoverflow.com/questions/42517619/angularjs-save-image-file-sent-from-web-api-2/42517789#42517789) 너에게. – lealceldeiro

답변

1

을 적용하지 :이 나는 성공적인 응답을 처리하는 방법입니다

$http.post('/api/download/',data, { 
      dataType : "binary", 
      processData : false, 
      accept:'application/zip', 
      Encoding: 'gzip', 
      responseType:'arraybuffer'}) 

: 이 요청에 대한 코드입니다 Github의 FileSaver에서이 버그를 확인하십시오 : saving Zip file problems

+0

이것은 이론적으로 질문에 대답 할 수 있지만 여기서 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (// meta.stackoverflow.com/q/8259). –

0

먼저 response_Type을 arraybuffer로 설정해야합니다. sending_and_Receivin g_Binary_Data. 그래서 코드는 다음과 같은 것입니다 : 컨트롤러에서

$http.post('/postUrlHere',{myParams}, {responseType:'arraybuffer'}) 
    .success(function (response) { 
     var file = new Blob([response], {type: 'application/pdf'}); 
     var fileURL = URL.createObjectURL(file); 
}); 

:

$scope.cont = $sce.trustAsResourceUrl(fileURL); 

을 HTML 페이지 :

<embed ng-src="{{cont}}" style="width:100px;height:100px;"></embed> 

이 코드는 문제를 해결하는 데 도움이 될 것입니다.