开发者社区> 问答> 正文

【OSS】使用Browser.js SDK时如何上传base64编码的图片?

已解决

使用Browser.js SDK时如何上传base64编码的图片?

展开
收起
云上猫猫 2022-01-19 17:15:33 5662 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    base64先转码成指定格式图片,然后调用OSS上传接口进行上传。更多信息,请参见Github示例

    /**
     * base64 to file
     * @param dataurl   base64 content
     * @param filename  set up a meaningful suffix, or you can set mime type in options
     * @returns {File|*}
     */
    const dataURLtoFile = function dataURLtoFile(dataurl, filename) {
      const arr = dataurl.split(',');
      const mime = arr[0].match(/:(.*?);/)[1];
      const bstr = atob(arr[1]);
      let n = bstr.length;
      const u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new Blob([u8arr], { type: mime });// if env support File, also can use this: return new File([u8arr], filename, { type: mime });
    };
    
    // client表示OSS client实例
    const uploadBase64Img = function uploadBase64Img(client) {
      // base64格式的内容
      const base64Content = 'data:image:xxxxxxxxxxxxx';
      const filename =  'img.png';
      const imgfile = dataURLtoFile(base64Content, filename);
      //key表示上传的object key ,imgFile表示dataURLtoFile处理后返回的图片
      client.multipartUpload(key, imgfile).then((res) => {
        console.log('upload success: %j', res);
      }).catch((err) => {
        console.error(err);
      });
    };
                
    
    2022-01-19 17:29:51
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
问答排行榜
最热
最新

相关电子书

更多
一个跨平台的云服务SDK需要什么 立即下载
云存储之OSS实战进阶分享 立即下载
OSS运维进阶实战手册 立即下载