js base64转File格式并提交上传

最近项目做了OCR,那图片传输的格式需要以form-data文件的格式传输,移动端调用原生方法获取图片信息,只能拿到base64编码,所以需要通过格式转换成文件流的格式去提交。

base64转File


/**
 * base64ToFile base64转文件
 * @param {String} urlData base64编码参数
 */
function base64ToFile(baseData) {
  let arr = baseUrl.split(',');
  let type = arr[0].match(/:(.*?);/)[1];   // 解锁图片类型
  let bytes = atob(arr[1]); // 解码base64
  let n = bytes .length
  let bufferArray = new Uint8Array(i);
  while (n--) {
    bufferArray[n] = bytes.charCodeAt(n);
  }
  return new File([bufferArray ], { type: type });
}

以form-data格式上传

form-data格式需要注意的是头信息中Content-Type需设置为 multipart/form-data

/**
 * uploadImg OCR上传识别图片  
 */
function uploadImg (baseData) {
  let file = base64ToFile(baseData) 
  let formData = new FormData()
  formData.append('file', file)
  let url = `/api/test`
  return formDataHttp.post(url, formData)  // formDataHttp是`multipart/form-data`的axios实例。
}

你可能感兴趣的:(js base64转File格式并提交上传)