2014-05-21 3 views
0

나는 zipzap을 사용하여 프로젝트를 진행하고 있으며 zipzap에서 이미지 파일을 압축하려고합니다. 그러나 이미지가 zip 다음에 제대로 표시되지 않는 이유는 이미지 데이터가 XMLHttpRequest에서 가져온 것이고 이미지의 데이터가 올바른 방식으로 인코딩되지 않은 것입니다.이미지를 zipzap에 저장하는 방법

내 코드 : 브라우저는 결과를 해석하려고 :

function requestImgPart(url) { 

    var request = new XMLHttpRequest(); 



    request.open("GET", url, true); 
    request.setRequestHeader('Accept', 'image/*'); 
    request.onload = onload; 
    request.onerror = onerror; 
    request.send(); 

    function onload() { 
    if (request.status === 200) { 
     var zip= new JSZip(); 
     zip.file("1.png",request.responseText); 
     zip.saveAs("presentations.zip"); 
    } 
    } 

    function onerror() { 

    } 

} 

URL이 하나가 내 코드

답변

1

request.responseText에서 오는 내부 잘못 알고 있나요 http://upload.wikimedia.org/wikipedia/commons/d/d6/MicroQR_Example.png

같은 것이있다 문자열로 그리고 그것의 문자셋에서 디코딩 (그러나 그것은 텍스트가 아니며 손상된 데이터를 얻습니다).

request.responseType = "arraybuffer";으로 ArrayBuffer에 요청할 수 있습니다. 데이터는 response 속성에 있습니다 (zip.file("1.png",request.response);).

IE 6-9 지원이 필요한 경우 위의 responseType은 작동하지 않습니다. 자세한 내용은 here을 참조하십시오.

+0

고맙습니다. 작동합니다. – Pocky

관련 문제