vue中封装方法文件、图片下载到本地

调用方法时传文件的地址及文件名字

文件下载

	downloadFileFunction(url, name) { 
      const a = document.createElement('a')
      fetch(url).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址
        a.href = URL.createObjectURL(blob)
        a.download = name // 下载文件的名字
        document.body.appendChild(a)
        a.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')
        var a = document.createElement('a')
        var event = new MouseEvent('click')
        a.download = name || 'photo'
        a.href = url
        a.dispatchEvent(event)
      }
      image.src = imgsrc
    },

版权声明:本文为qq_39981639原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。