base64转file文件源码记录

2020-05-28 23:03:32 浏览数 (1)

场景

我们前后端交互图片的时候,一般我们是用base64进行交互的,但是很多时候我们传递图片的时候很多的后端是需要file文件格式的,而不是base64的,所以这个时候是需要进行一个简单的转变

源码记录
代码语言:javascript复制
 /**
       * @dataURLtoBlob 转文件格式
       */
      dataURLtoBlob : function(dataurl) {
        let arr = dataurl.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
        });
      },
      /**
       * @param {Object} theBlob 文件
       * @param {Object} fileName 文件名字
       */
      blobToFile : function(theBlob, fileName) {
        theBlob.lastModifiedDate = new Date();
        theBlob.name = fileName;
        return theBlob;
      },
调用
代码语言:javascript复制
			  let blob = that.dataURLtoBlob(data);
              let file = that.blobToFile(blob, "imgName");
              let send_file = new FormData();
              send_file.append("upfile", file,"image.png");

send_file就是我们需要的给后端的文件,这篇文章只是用来记录一下,所以不写别的废话了,这里简单的说一下,我们拿到一个base64文件的时候,想验证一下是不是正确的格式的话,那么我们是可以直接放到url里面,他可以识别出图片本身,那么就是一个正确的base64,如果不行,那么就不是一个正确的base64格式的文件,还有就是直接在网上找在线转换的工具,这个是很多的。

谢谢阅读

0 人点赞