1. 程式人生 > >vue 圖片下載到本地,圖片儲存到本地

vue 圖片下載到本地,圖片儲存到本地

必須同源(訪問的網站域名與伺服器域名一致)才能下載

downs() {
  var alink = document.createElement("a");
  alink.href = this.shop.shoppic_url;
  alink.download = "pic"; //圖片名
  alink.click();
},

解決圖片不同源下載問題:

downloadIamge(imgsrc, name) {//下載圖片地址和圖片名
  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/png"); //得到圖片的base64編碼資料

    var a = document.createElement("a"); // 生成一個a元素
    var event = new MouseEvent("click"); // 建立一個單擊事件
    a.download = name || "photo"; // 設定圖片名稱
    a.href = url; // 將生成的URL設定為a.href屬性
    a.dispatchEvent(event); // 觸發a的單擊事件
  };
  image.src = imgsrc;
},
downs(){
  this.downloadIamge(this.pic.url, 'pic')
}