因为下载还是挺常见的,所以用axios封装了一下,直接调用即可。
很简单的封装,一般情况下,只需要传入文件路径,文件名,和文件的mime类型即可。
/**
* Encapsulate Download methods, download files.
* @param url
* @param filename
* @param filetype: file mime type
* @param config: header config, a object
* @returns {Promise}
*/
export function download(url, filename, filetype, config = {}) {
return new Promise((resolve, reject) => {
axios({ url, responseType: "blob", method: "GET", ...config })
.then(result => {
var fileURL = window.URL.createObjectURL(
new Blob([result.data], { type: filetype })
);
var fileLink = document.createElement("a");
fileLink.href = fileURL;
fileLink.setAttribute("download", filename);
document.body.appendChild(fileLink);
fileLink.click();
resolve(result);
})
.catch(err => {
reject(err);
});
});
}
文章评论