2017-09-08 37 views
0

저는 현재 jszip, jszip-utils, and FileSaver을 사용하여 여러 PDF를 압축하여 다운로드합니다.FileSaver saveAs가 IE11에서 작동하지 않습니다.

self.createZip = function() { 
    var docs = self.list.filteredItems(); 
    var zip = new JSZip(); 
    var count = 0; 
    var zipFilename = "zipFilename.zip"; 

    docs.forEach(function (item) { 
     var filename = item.formDesc() + "_" + item.id() + ".pdf"; 
     // loading a file and add it in a zip file 
     JSZipUtils.getBinaryContent('../career/document/StreamFile/?path=' + item.fileName(), function (err, data) { 
      if (err) { 
       throw err; // or handle the error 
      } 
      zip.file(filename, data, { binary: true }); 
      count++; 
      if (count == docs.length) { 
       zip.generateAsync({ type: 'blob' }).then(function (content) { 
        try { 
          saveAs(content, zipFilename); 
         } catch (e) { 
          console.log(e); 
         }     
       });     
      } 
     }); 
    }); 

이 기능은 현재 IE11을 제외한 모든 최신 브라우저에서 작동합니다. IE11에서는 모든 파일을 가져 오지만 saveAs에서는 중단됩니다.

+1

을 취소 당신의 이름으로 저장 문 뒤에 다음을 시도,하지만 당신은 유래에 게시 어디 지점에 있지 아직 의미가 있습니다. 먼저, 일부 디버깅을 수행하십시오. 브라우저 버전간에 코드가 작동하지 않는 곳은 파일 서버에 대한 알려진 문제점 (버그 추적기를 살펴 보았습니까?), Google 검색 등을 수행하는 데 사용할 수있는 콘솔 오류가 있습니까? .? 지금 당장 말하는 것은 "내 코드가 작동하지 않습니다, 여기 있습니다, 제발 알아 내십시오."라는 징후가 없다는 것입니다./how-to-ask). –

+0

Mike, 나는 그 모든 작업을 수행했으며 try 블록을 추가하여 오류를 잡았지만 오류는 없습니다. 내가 발견 한 모든 유사한 문제는 IE11 용 BLOB 형식을 사용하는 것이 좋습니다. 나는 포스트에서 말했듯이 SaveAs에 매달려 아무것도하지 않습니다. 그래서 누군가 다른 사람이이 문제를 경험했는지 확인하기 위해 여기에 게시했습니다. – capiono

+0

그 주장을 감안할 때, 나는 "filesaverjs ie11"과 같은 것으로 봤다고 가정합니다. 첫 번째 히트는 저에게 https://stackoverflow.com/questions/39266801/saving-file-on-ie11-with-filesaver-를줍니다. 귀하의 게시물에 이것을 언급하지 마십시오, 당신은 그 해결책이 당신을 위해 작동하지 여부를 언급하지 않습니다. 그럴 경우 :이 질문은 게시 할 필요가 없습니다. 그것이 아니라면, 그것은 사람들이 여기에 대해 알 필요가있는 정보입니다. 왜냐하면 그것이 여러분의 문제를 이미 (내가 검색하여 알 수있는 것에서 여러 번) 이미 답을 얻은 것과 Stackoverflow에서 차이가 있기 때문입니다. –

답변

2

좋은 첫 번째 단계의 버퍼

content = null; 
+0

감사합니다. 도움이되는 것 같습니다. – capiono