a标签下载文件,图片,txt文件
urlToBlob(swiperItem) { // let file_url = // 'http://obdataplatform-test.oss-cn-shenzhen.aliyuncs.com/2020_07_10/391f56b9-f4bc-408b-868b-31ea0f8b1b47.hex' return new Promise(resolve => { let file_url = "https://rds.wm-motor.cn/file-proxy/?url=" + encodeURI(swiperItem.path); let xhr = new XMLHttpRequest(); xhr.open("get", file_url, true); xhr.responseType = "blob"; let _that = this; xhr.onload = function() { if (this.status == 200) { const reader = new FileReader(); reader.onload = function() { _that.txtContent = reader.result; resolve(reader.result); }; reader.readAsText(this.response); } }; xhr.send(); }); },
给a标签加一个download属性 可以设置下载下来的文件的文件名
注意:下载的地址域名和访问网站的域名是同源 否则设置无效
// 下载图片 downloadIamge(swiperItem) {//下载图片地址和图片名 console.log('swiperItem', swiperItem) // let src = 'http://pic.c-ctrip.com/VacationH5Pic/mice/wechat/ewm01.png'; let src = 'https://rds.wm-motor.cn/file-proxy/?url=' + encodeURI(swiperItem.path) var canvas = document.createElement('canvas'); var img = document.createElement('img'); img.onload = function(e) { canvas.width = img.width; canvas.height = img.height; var context = canvas.getContext('2d'); context.drawImage(img, 0, 0, img.width, img.height); canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height); canvas.toBlob((blob)=>{ let link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = swiperItem.docName; link.click(); }, "image/jpeg"); } img.setAttribute("crossOrigin",'Anonymous'); img.src = src; },
,
// 下载文件,区分txt文件 handleDownload(swiperItem){
// txt文件 if(swiperItem.docName.split(".")[1] == 'txt'){ this.urlToBlob(swiperItem).then(() => { let url = new Blob(['\ufeff' + this.txtContent], {type: 'text/tet,charset=UTF-8'}); swiperItem.path = URL.createObjectURL(url); const a = document.createElement('a') a.setAttribute('download', swiperItem.docName) a.setAttribute('target', '_blank') a.setAttribute('href', swiperItem.path) a.click() }) // openDownloadDialog(blob, `${fileName}.csv`); }else {
//其他文件 const a = document.createElement('a') a.setAttribute('target', '_blank') let path = 'https://rds.wm-motor.cn/file-proxy/?url=' + encodeURI(swiperItem.path) a.setAttribute('href', path) a.setAttribute('download', swiperItem.docName) a.click() } }