2016-04-30 21 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) 
});