axios能不能把base64还原成文件上传?

如题 现在通过粘贴事件,拿到了图片文件的base64

我想把他还原成原文件上传,需要怎么做呢?

因为base64比原始的大

阅读 3.9k
1 个回答

base64 转 .ico 文件

base64ToBolb = function(url){
  return new Promise(function(resolve,reject){
    var img = new Image()
    img.src = url
    img.crossOrigin="*"
    img.onload = function(){
      var canvas = document.createElement("canvas")
      canvas.width = img.width
      canvas.height = img.height
      var ctx = canvas.getContext("2d")
      ctx.drawImage(img,0,0,canvas.width,canvas.height)
      function blobCallback(iconName) {
        return function(b) {
          var a = document.createElement("a");
          a.textContent = "Download";
          document.body.appendChild(a);
          a.style.display = "block";
          a.download = iconName + ".ico";
          a.href = window.URL.createObjectURL(b);
        }
      }
      resolve(canvas.toBlob(blobCallback('passThisString'), 'image/vnd.microsoft.icon', 
                    '-moz-parse-options:format=bmp;bpp=32'));
    }
    img.onerror = function(){
      reject()
    }
  })
}

使用

base64ToBolb(base64String)
.then(file => console.log(file))
.catch(err => console.warn(err))

参考
https://developer.mozilla.org...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题