axios下载大文件
时间: 2023-08-16 13:10:08 浏览: 178
vue + axios get下载文件功能
5星 · 资源好评率100%
如果你想使用axios来下载大文件,可以使用axios的stream属性来实现,这样可以避免一次性将文件加载到内存中,从而减少内存的占用。
以下是一个使用axios下载大文件的示例代码:
```javascript
const axios = require('axios');
const fs = require('fs');
const downloadFile = async (url, downloadPath) => {
const writer = fs.createWriteStream(downloadPath);
const response = await axios({
url,
method: 'GET',
responseType: 'stream',
});
response.data.pipe(writer);
return new Promise((resolve, reject) => {
writer.on('finish', resolve);
writer.on('error', reject);
});
};
downloadFile('http://example.com/largefile.zip', './largefile.zip').then(() => {
console.log('File downloaded successfully');
}).catch((error) => {
console.error('Error while downloading file:', error);
});
```
在上面的示例中,我们首先创建了一个可写流(writer),然后使用axios发送一个GET请求来获取文件的流(responseType设置为'stream')。接下来,我们将文件的流(response.data)通过管道(pipe)的方式写入到可写流中。最后,我们返回一个Promise,该Promise在下载完成时resolve,下载出错时reject。
阅读全文