vue 前端根据 文件路径/图片路径 url 下载文件

打印 上一主题 下一主题

主题 1029|帖子 1029|积分 3087

1 -vue 前端根据 文件路径url 下载文件
  1. downloadFile(row){
  2.     var a = document.createElement('a') // 创建一个<a></a>标签
  3.     a.href = row.fileUrl         //重点(如测试发现下载文件不存在/找不到,检查路径)
  4.     a.download = row.fileName          // 设置下载文件文件名
  5.     a.style.display = 'none'           // 隐藏a标签
  6.     document.body.appendChild(a)       // 将a标签追加到文档对象中
  7.     a.click()                          // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
  8.     a.remove()
  9. },
复制代码
2 -vue 前端根据 图片url 下载图片
  1. downloadFile(row) {
  2.     var image = new Image();
  3.     // 解决跨域 Canvas 污染问题
  4.     image.setAttribute("crossOrigin", "anonymous");
  5.     image.onload = function() {
  6.         var canvas = document.createElement("canvas");
  7.         canvas.width = image.width;
  8.         canvas.height = image.height;
  9.         var context = canvas.getContext("2d");
  10.         context.drawImage(image, 0, 0, image.width, image.height);
  11.         var url = canvas.toDataURL("image/png"); //得到图片的base64编码数据
  12.         var a = document.createElement("a"); // 生成一个a元素
  13.         var event = new MouseEvent("click"); // 创建一个单击事件
  14.         a.download = row.fileName || "photo"; // 设置图片名称
  15.         a.href = url; // 将生成的URL设置为a.href属性
  16.         a.dispatchEvent(event); // 触发a的单击事件
  17.     }
  18.     image.src = row.fileUrl;
  19. },
  20. 或者
  21. downloadImg(){
  22.     var filename = this.fileName || '分享码';
  23.     fetch(this.qrUrl).then(res => res.blob().then(blob => {
  24.           var a = document.createElement('a');
  25.           var url = window.URL.createObjectURL(blob);
  26.           a.href = url;
  27.           a.download = filename;
  28.           a.click();
  29.           window.URL.revokeObjectURL(url);
  30.         }));
  31. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表