首页前端开发HTMLdata:image data url 文件转为Blob上传后端的方法

data:image data url 文件转为Blob上传后端的方法

时间2024-01-25 00:56:20发布访客分类HTML浏览825
导读:收集整理的这篇文章主要介绍了data:image data url 文件转为Blob上传后端的方法,觉得挺不错的,现在分享给大家,也给大家做个参考。 一些场景,比如canvas获取的图片,或者微信开发sdk返回的图片格式是data...
收集整理的这篇文章主要介绍了data:image data url 文件转为Blob上传后端的方法,觉得挺不错的,现在分享给大家,也给大家做个参考。

一些场景,比如canvas获取的图片,或者微信开发sdk返回的图片格式是data:img格式的,我们需要上传到服务器上,那就需要进行转化。

将dataURL转成Blob

// base64 转 blobdataURIToBlob(dataURI) {
      // convert base64/URLencoded data component to raw binary data held in a string  let bytestring;
      if (dataURI.split(',')[0].indexOf('base64') >
= 0) {
        byteString = atob(dataURI.split(',')[1]);
  }
     else byteString = unescaPE(dataURI.split(',')[1]);
      // separate out the mime component  const mimeString = dataURI    .split(',')[0]    .split(':')[1]    .split(';
    ')[0];
      // write the bytes of the string to a typed array  const ia = new Uint8Array(byteString.length);
      for (let i = 0;
     i  byteString.length;
 i++) {
        ia[i] = byteString.charCodeAt(i);
  }
  return new Blob([ia], {
 type: mimeString }
    );
}
    ,

构建Form上传表单

const blob = dataURItoBlob(imgDataUrl);
    const formData = new FormData();
    // formData.append('auth', state.token.auth);
     可以选择性的加入一些鉴权formData.append('file', blob);
进行数据上传,我这里使用的是axiosconst params = {
   url: '/Store/file',   payload: formData }
    ;
     const data = await this.upload(params);
    

我已经对axios进行了封装

export const upload = (params) =>
 {
  const {
 url, payload }
 = params  return axios.post(url, payload, {
    headers: {
      'Content-type': 'multipart/form-data'    }
  }
    ).then(x =>
 x.data)}
    

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

data

若转载请注明出处: data:image data url 文件转为Blob上传后端的方法
本文地址: https://pptw.com/jishu/585957.html
微信小程序之html5 canvas绘图并保存到系统相册 使用canvas一步步实现图片打码功能的方法

游客 回复需填写必要信息