文件上传 new FormData() ,new FileReader()

reader = new FileReader()  

reader.readAsDataUrl(file[0])    基于base64    base64:

reader.readAsArrayBuffer()       基于buffer的   blob文件

reader.readAsBinaryString()     基于二进制格式数据

let fd = new FormData() 二进制

fd.append('file', files[0]); 二进制文件 file:(binary)
 
base64转blob
dataURLtoBlob(dataurl) {
      //base64 转blob
      var arr = dataurl.split(',')
      var mime = arr[0].match(/:(.*?);/)[1]
      var bstr = atob(arr[1])
      var n = bstr.length
      var u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      return new Blob([u8arr], {
        type: mime
      })
 },    

base64转file

base64toFile(dataurl, filename = 'file') {
      //base64转file
      const arr = dataurl.split(',')
      const mime = arr[0].match(/:(.*?);/)[1]
      const suffix = mime.split('/')[1]
      const bstr = atob(arr[1])
      let n = bstr.length
      const u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      const file = new File([u8arr], `${filename}.${suffix}`, {
        type: mime
      })
      return file
},

  

 

posted @ 2019-02-14 11:56  国服第一李师师  阅读(1053)  评论(0编辑  收藏  举报