而不是直接浏览器打开"/>
js实现下载pdf而不是直接浏览器打开
fileLinkToStreamDownload(url, fileName, type) {const that = this;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;that.downloadExportFile(blob, fileName, type);}};xhr.send();}},downloadExportFile(blob, fileName, 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 = fileName;document.body.appendChild(downloadElement);downloadElement.click(); //点击下载document.body.removeChild(downloadElement); //下载完成移除元素if (typeof blob != "string") {window.URL.revokeObjectURL(href); //释放掉blob对象}},
更多推荐
js实现下载pdf而不是直接浏览器打开
发布评论