2016-04-30 146 views
0
var bl = window.URL.createObjectURL(xhr.response) 

var zip = new JSZip(); 
zip.file(bl); 

zip.generateAsync({type:"blob"}) 
.then(function(content) { 
    saveAs(content, "example.zip"); 

}, function(err){ 
    console.log(err) 
}) 

My XmlHttpRequest從圖像文件中獲得類型「blob」的響應。如何將blob圖像文件轉換爲圖像文件(可以是.gif,.jpg,.bmp,.jpg-large等),以便我可以無誤地創建zip文件?使用JSZip進行圖像轉換的Javascript blob

+1

[.file(https://stuk.github.io/jszip/documentation/api_jszip/file_name.html)過去了一個參數改掉得到一個文件未設置文件。要設置一個[文件](https://stuk.github.io/jszip/documentation/api_jszip/file_data.html),你需要傳遞它兩個參數,名稱和內容(它可以是你得到的blob) –

回答

1

隨着URL.createObjectURL你得到的BLOB的網址(例如blob:https://stackoverflow.com/e62c177a-b4b1-4945-8e13-53bb5a3c8f34)。 JSZip不能解決它,但你可以直接使用blob(在你的情況下使用xhr.response)。正如帕特里克埃文斯在評論中所說,你還需要提供文件名。

var zip = new JSZip(); 
zip.file("my_file.ext", xhr.response); 

zip.generateAsync({type:"blob"}) 
.then(function(content) { 
    saveAs(content, "example.zip"); 
}, function(err){ 
    console.log(err) 
});