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

Мой XmlHttpRequest получил ответ типа «blob» из файла изображения. Как преобразовать файл изображения blob в файл изображения (может быть .gif, .jpg, .bmp, .jpg-large и т. Д.), Чтобы я мог сделать zip-файл без ошибок?Javascript blob to image converting with JSZip

+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 вы получаете URL-адрес 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) 
});