我想用 --- 下载一个 pdf 文件,并用 fs.writeFile
axios
保存在磁盘(服务器端)上,我试过:
axios.get('https://xxx/my.pdf', {responseType: 'blob'}).then(response => {
fs.writeFile('/temp/my.pdf', response.data, (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
});
文件已保存,但内容已损坏…
如何正确保存文件?
原文由 ar099968 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上,我认为之前接受的答案有一些缺陷,因为它不能正确处理 writestream,所以如果你在 Axios 给你响应后调用“then()”,你最终会得到一个部分下载的文件。
当下载稍大的文件时,这是一个更合适的解决方案:
这样,您可以在返回的承诺上调用
downloadFile()
,调用then()
,并确保下载的文件已完成处理。或者,如果你使用更现代的 NodeJS 版本,你可以试试这个: