下载按钮直接下载图片或pdf而不是打开图片或pdf

我也是网上抄的复制下面两个方法,直接调用fileLinkToStreamDownload 就能下载

function fileLinkToStreamDownload(url, fileName, type){
let reg = /^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-]+).)+([A-Za-z0-9-/])+/; if (!reg.test(url)) { throw new Error("传入参数不合法,不是标准的文件链接"); } else { let xhr = new XMLHttpRequest(); xhr.open('get', url, true); xhr.setRequestHeader('Content-Type', `application/{type}`);
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
//接受二进制文件流
var blob = this.response;
downloadExportFile(blob, fileName, type)
}
};
xhr.send();
}
}

/**
*下载导出文件

  • @param blob :返回数据的blob对象或链接
  • @param tagFileName :下载后文件名标记
  • @param fileType :文件类 word(docx) excel(xlsx) ppt等
    */
    function downloadExportFile(blob, tagFileName, fileType) {
    let downloadElement = document.createElement('a');
    let href = blob;
    if (typeof blob == 'string') {
    downloadElement.target = '_blank';
    } else {
    href = window.URL.createObjectURL(blob); //创建下载的链接
    }
    downloadElement.href = href;
    downloadElement.download = tagFileName + moment(new Date().getTime()).format('YYYYMMDDhhmmss') + '.' + fileType; //下载后文件名
    document.body.appendChild(downloadElement);
    downloadElement.click(); //点击下载
    document.body.removeChild(downloadElement); //下载完成移除元素
    if (typeof blob != 'string') {
    window.URL.revokeObjectURL(href); //释放掉blob对象
    }
    }

抄的原博客地址 https://www.cnblogs.com/jackson-yqj/p/11321275.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容