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

Mein XmlHttpRequest bekam eine Antwort vom Typ 'Blob' aus einer Bilddatei. Wie kann ich die Blob-Image-Datei in eine Image-Datei konvertieren (zB .gif, .jpg, .bmp, .jpg-large, etc.), damit ich eine Zip-Datei ohne Fehler erstellen kann?Javascript Blob zur Bildkonvertierung mit JSZip

+1

[.file] (https://stuk.github.io/jszip/documentation/api_jszip/file_name.html), wenn ein einziges Argument übergeben Trys, eine Datei erhalten eine Datei nicht festgelegt. Um eine [Datei] (https://stuk.github.io/jszip/documentation/api_jszip/file_data.html) zu setzen, müssen Sie ihr zwei Argumente übergeben, den Namen und den Inhalt (das kann der Blob sein, den Sie bekommen haben) –

Antwort

1

Mit URL.createObjectURL erhalten Sie die URL des Blobs (blob:https://stackoverflow.com/e62c177a-b4b1-4945-8e13-53bb5a3c8f34 zum Beispiel). JSZip löst es nicht auf, aber Sie können den Blob (so xhr.response in Ihrem Fall) direkt verwenden. Wie Patrick Evans in einem Kommentar sagte, müssen Sie auch den Dateinamen angeben.

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) 
});