如何解决将图像字符串添加到a使用nodeJS的zip文件
好,所以我正在使用代理服务器来抓取一些图像,作为响应,我得到的是图像,它们是很长的字符串形式。目标是创建.zip文件,并将所有这些图像打包在其中。旁注-我无法使用代理发送content-type
标头,因此我只能获得此图像字符串。
在将字符串转换为JSZip
或nodebuffer
之后,我尝试使用base64
。为简单起见,这是一个仅使用一个图像而不是一个全部图像的示例。
// get image
let response = await this.callForMedia(img.url,true).catch(error => console.log(error));
const buffer = new Buffer(response.data);
// I kNow image type already,therefore + '.jpg' part
zip.addFile(img.category + '.jpg',buffer);
zip.generateAsync({
type: 'nodebuffer'
}).then((content) => {
console.log(typeof content);
fs.writeFile('images.zip',content,err => {
if (err) console.log('file system',err);
else console.log('done');
});
})
.catch(err => {
console.log('zipjs')
console.log(err);
});
尝试使用base64
格式,也尝试使用adm-zip
包并将缓冲区传递给它。
当我将缓冲区传递给JSZip
或adm-zip
时,我将获得有效的.zip文件,该文件可以解压缩-问题是我获取的图像是JPG 2000图像,这意味着其自然扩展名是.j2k或.jp2。我的Ubuntu操作系统上的应用程序无法打开它,而用于将该格式转换为.jpg的在线工具发现该文件已损坏。
任何帮助都将受到欢迎。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。