前端axios下载文件
时间: 2024-10-25 13:01:22 浏览: 14
前端axios下载excel文件(二进制)的处理方法
前端使用axios下载文件通常涉及到异步请求。以下是一个简单的示例,展示了如何使用axios发送一个GET请求来下载文件:
```javascript
import axios from 'axios';
const downloadFile = async (url) => {
try {
const response = await axios({
method: 'get',
responseType: 'stream', // 设置响应类型为流,用于处理二进制数据
url,
});
// 创建一个Blob对象并设置其type属性为文件的真实类型
const blob = new Blob([response.data], { type: response.headers['content-type'] || '' });
// 创建URL.createObjectURL()创建一个临时URL,然后创建a标签下载文件
const urlObj = URL.createObjectURL(blob);
const aLink = document.createElement('a');
aLink.href = urlObj;
aLink.download = `file_name`; // 替换为你想要保存的文件名
// 触发点击事件模拟真实下载行为
document.body.appendChild(aLink); // 添加到body元素以便触发下载
aLink.click();
document.body.removeChild(aLink); // 下载完成后移除链接
// 清理ObjectURL,释放内存
URL.revokeObjectURL(urlObj);
} catch (error) {
console.error('Error downloading file:', error);
}
};
// 调用函数,例如下载一个名为"example.pdf"的文件
downloadFile('http://example.com/example.pdf');
```
阅读全文