小tips:前端通过Blob下载文件流

先看网上一个简单的代码片段:

let blob = new Blob([res], {
    type: `application / pdf` //word文档为msword,pdf文档为pdf
});
let objectUrl = URL.createObjectURL(blob);
let link = document.createElement("a");
let fname = `我的文档`; //下载文件的名字
link.href = objectUrl;
link.setAttribute("download", fname);
document.body.appendChild(link);
link.click();

全面:

/**
 * @param {String} resource 文件流
 * @param {String} fileType 文件类型
 * @param {String} fileName 文件名
 * */
var downloadBlob=function(resource,fileType,fileName){
    var data = new Blob([resource],{
        type:fileType
    });
    if('download' in document.createElement('a')){ //非IE
        var downloadUrl = window.URL.createObjectURL(data);
        var anchor = document.createElement("a");
        anchor.href = downloadUrl;
        anchor.download = fileName;
        anchor.style.display = 'none';
        document.body.appendChild(anchor);
        anchor.click();
        window.URL.revokeObjectURL(anchor.href); 
        document.body.removeChild(anchor);
    }else{ //IE10+下载
        navigator.msSaveBlob(data, fileName);
    }
    
}

调用方式:

downloadBlob(res,'application/pdf','文档名称')

猜你喜欢

转载自www.cnblogs.com/moqiutao/p/9770494.html