js 图片和文件 下载功能

 download(src, fileName) {
      // //下载图片地址和图片名
      // var image = new Image();
      // // 解决跨域 Canvas 污染问题
      // image.setAttribute("crossOrigin", "anonymous");
      // image.onload = function () {
      //   var canvas = document.createElement("canvas");
      //   canvas.width = image.width;
      //   canvas.height = image.height;
      //   var context = canvas.getContext("2d");
      //   context.drawImage(image, 0, 0, image.width, image.height);
      //   var url = canvas.toDataURL("image/jpg"); //得到图片的base64编码数据
      //   var a = document.createElement("a"); // 生成一个a元素
      //   var event = new MouseEvent("click"); // 创建一个单击事件
      //   a.download = fileName.split(".")[0] || "photo"; // 设置图片名称
      //   a.href = url; // 将生成的URL设置为a.href属性
      //   a.dispatchEvent(event); // 触发a的单击事件
      // };
      // image.src = src;
      let link = document.createElement("a");

      // 这里是将url转成blob地址,
      fetch(src)
        .then((res) => res.blob())
        .then((blob) => {
          // 将链接地址字符内容转变成blob地址
          link.href = URL.createObjectURL(blob);
          link.download = fileName.split(".")[0] || "photo";// 文件名称
          document.body.appendChild(link);
          var event = new MouseEvent("click"); // 创建一个单击事件
          //   link.click();
          link.dispatchEvent(event); // 触发a的单击事件
        });
    },

  

posted on 2021-11-25 13:49  水行者  阅读(578)  评论(0编辑  收藏  举报

导航