axios封装导出下载
时间: 2023-08-21 15:04:08 浏览: 86
你可以使用axios来封装文件下载的请求。下面是一个简单的示例:
```javascript
import axios from 'axios';
// 封装导出下载的函数
const downloadFile = (url, filename) => {
axios({
url: url,
method: 'GET',
responseType: 'blob' // 设置响应类型为blob
})
.then(response => {
const blob = new Blob([response.data]);
const link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
link.click();
})
.catch(error => {
console.error('文件下载失败', error);
});
};
export default downloadFile;
```
使用时,你可以调用这个封装好的函数来进行文件下载:
```javascript
import downloadFile from './downloadFile';
// 调用下载函数
downloadFile('http://example.com/file.pdf', 'example.pdf');
```
这个封装函数会发送一个GET请求来获取文件的内容,并将其转换为Blob对象。然后,通过创建一个临时的`<a>`元素,并设置其`href`属性为Blob对象的URL,以及`download`属性为要保存的文件名,最后调用`click()`方法来触发下载。
阅读全文