js文件格式转换 BASE64转File BASE64转Blob File转BASE64 File转Blob File存FromData Blob转base64 Blob转File

Blob转File

  const blob = new Blob(['{"a":1}')], {
      type: 'application/json'
  }) 
  let file = new File([blob], "自定义上传文件名称.json", { lastModified: Date.now() }); 

Blob转base64

blobToBase64(blob) {
  return new Promise((resolve, reject) => {
    const fileReader = new FileReader();
    fileReader.onload = (e) => {
      resolve(e.target.result);
    };
    // readAsDataURL
    fileReader.readAsDataURL(blob);
    fileReader.onerror = () => {
      reject(new Error('blobToBase64 error'));
    };
  });
}

File存FromData

  let params = new FormData() 
  params .append('file',file) 
//要注意 FromData的读写  读formData.get('file')   写 params.append('file',file) 

File转BASE64

/**
 * @param {File} file 需要转换的文件
 * @return {BASE64} 返回base64格式文件
 */
new Promise((resolve,reject)=>{
     var reader = new FileReader()
     reader.readAsDataURL(file)
     reader.onload = () => {  
         let url = reader.result 
         that.$emit("uploadSuccess",url) 
     }
     reader.onerror = function (error) {
         console.log('Error: ', error)
     }
 })

File转Blob

function dataURLtoBlob(dataurl) {
    var 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
    })
}

BASE64转File

    function dataURLtoFile(dataurl, filename) { 
	    var 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 File([u8arr], filename, { type: mime });
	}
   
    var file = dataURLtoFile(BASE64的数据, 文件名称); 

BASE64转Blob

function dataURLtoBlob(dataurl) {
    var 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 });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web-Rock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值