使用 JSZip 将 JavaScript blob 转换为图像

问题描述 投票:0回答:2
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 jszip
2个回答
5
投票

使用

URL.createObjectURL
,您可以获得 blob 的 url(例如
blob:https://stackoverflow.com/e62c177a-b4b1-4945-8e13-53bb5a3c8f34
)。 JSZip 无法解决该问题,但您可以直接使用该 blob(因此在您的情况下为
xhr.response
)。正如帕特里克·埃文斯(Patrick Evans)在评论中所说,您还需要提供文件名。

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

0
投票

JSZip v3 支持 blob 作为文件内容。

Usage:
zip.file("image.png", blob); 
© www.soinside.com 2019 - 2024. All rights reserved.