import FileSave from 'file-saver';
import MineType from './minetype'
// 附件下载
// name 下载文件的名字,url 需要下载的文件的地址
function downloadFile(name,url){
// 获取后缀,minetype需要根据后缀匹配类型
let lastname = name.substring(name.lastIndexOf('.')+1)
console.log('downloadFile:',lastname);
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "blob";
oReq.onload = ()=> {
var file = new Blob([oReq.response], {
type:MineType[lastname]
});
FileSave.saveAs(file, name);
};
oReq.onerror = ()=>{
}
oReq.send();
}
window.open打开部分文件地址也能下载,但是图片和pdf类型的文件,浏览器会选择直接打开而不是去下载
FiveSave这个处理可以不管是什么类型的文件 都去下载
./minetype是常见的minetype的类型封装js,详情可以看我的这篇记录【https://blog.csdn.net/JJ_huahua/article/details/125100338】
【PS:本文纯属原创,属个人理解,不合理不正确的地方 欢迎指正,共勉 谢谢!】