js 實現點擊圖片下載圖片文件


 js 實現點擊圖片下載圖片文件

downloadImage:function(val){
    // val 為傳入的圖片地址
        let _type_index = val.lastIndexOf('.');
        let _type = val.substr(_type_index + 1); //原始圖片類型
        let image = new Image();
        image.setAttribute('crossOrigin','anonymous'); //消除跨域
        image.src = val;
        image.onload = function(){
          //借助canvas實現 消除 圖片地址會先直接窗口打開圖片地址
          let canvas = document.createElement('canvas');
          canvas.width = image.width;
          canvas.height = image.height;
          let context = canvas.getContext('2d');
          context.drawImage(image,0,0,image.width,image.height);
          let url = canvas.toDataURL('image/'+_type);
          let blob = _this.dataUrlToBold(url);
          let obj_url = URL.createObjectURL(blob); // 消除Chrome下文件太大 導致下載失敗(網絡失敗)的問題
          let a = document.createElement('a');
          let event = new MouseEvent('click');
          a.download = name || 'xi-yuan';
          a.href = obj_url;
          a.dispatchEvent(event);
          loading.close();
        };
      },
      dataUrlToBold(url){
        let arr = url.split(','),
            mime = arr[0].match(/:(.*?);/)[1],
            bStr = atob(arr[1]),
            n = bStr.length,
            u8arr = new Uint8Array(n);
        while(n--){
          u8arr[n] = bStr.charCodeAt(n);
        }
        return new Blob([u8arr], {type:mime});
      }   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM