Node.js 节点下载并保存gif
我想从网上下载一个gif并保存在本地驱动器中。 到目前为止,我已经: 1) 将gif作为缓冲区返回的getFile函数:Node.js 节点下载并保存gif,node.js,Node.js,我想从网上下载一个gif并保存在本地驱动器中。 到目前为止,我已经: 1) 将gif作为缓冲区返回的getFile函数: import fs from 'fs' import https from 'https' let url = '//some gif url' const getFile = function(url) { return new Promise((res, rej) =>{ https.get(url, (resp) => {
import fs from 'fs'
import https from 'https'
let url = '//some gif url'
const getFile = function(url) {
return new Promise((res, rej) =>{
https.get(url, (resp) => {
let data = [];
resp.on('data', (chunk) => {
data.push(chunk);
});
resp.on('end', () => {
var buffer = Buffer.concat(data);
res(buffer)
});
}).on("error", (err) => {
rej(err);
});
})
}
2) 保存功能:
async function save() {
let data = await getFile(url)
fs.writeFile('./test.gif', data, (e, r) => {
console.log(e,r) // null, undefined
})
}
save()
该文件已保存并包含内容,但当我尝试打开它时,它会显示:无法加载图像
我试图将输出转换为utf8编码,但它给出了相同的结果
注意:我想让它在没有三方工具或“管道”的情况下与原始节点一起工作,以了解工作部件。
我想问题在于编码,但我不知道它到底是什么
谢谢在文本编辑器中打开文件。前三个字节是否拼写为
GIF
?不,我看到了\00\00\00ftypeisom\00\00isomiso2avc1…我猜这个GIF是试图从imgur下载的吗?确切的url是:请注意,当您导航到url时,加载的是mp4文件,而不是GIF。将扩展名更改为mp4,您应该能够在系统媒体查看器中打开该文件。