前端文件下载
先记录
function getFile(url, params) {
axios({
method: 'get',
url: suffix + url + '?' + QueryString.encode(params),
responseType: 'arraybuffer',
withCredentials: true,
}).then(function (response) {
let name = _fileNameInContentDisposition(response);
// console.log("返回结果", response, response.headers['content-type'], name);
let blob = new Blob([response.data], {
type: response.headers['content-type']
});
let objectUrl = URL.createObjectURL(blob);
_saveFile(objectUrl, name);
window.URL.revokeObjectURL(blob);
});
}
function _saveFile(objectUrl, name) {
let a = document.createElement('a');
a.href = objectUrl
a.download = name // 文件名 ,
a.dispatchEvent(new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
}))
}
function _fileNameInContentDisposition(res) {
let des = res.headers['content-disposition'];
let last = des.lastIndexOf("filename=");
let fileName = des.slice(last).replace("filename=", "");
// console.log("获取到文件名", fileName);
return fileName;
}
还没有评论,来说两句吧...