Base64 上传到 oss 步骤

Base64 格式的图片是需要转成 Blob ,再转成 file 文件 进而上传到 oss 上。

  1. 这里先写一个处理函数直接把 base64 转成咱想要的 file 文件
    	/**
    	*
    	* @param dataUrl  base64 图片
    	* /
    	export function base64ToFile(dataUrl: any,  name: any){
    	  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], name+ '.jpg' ,{ type: "image/jpg" });
    	}
    
    返回的file文件属性: 在这里插入图片描述
  2. 再找后端要接口 获取上传 oss 所需要的参数
    // 一般来说 oss 上传所需要的参数
    ossData: object = {
    	OSSAccessKeyId: "",
    	success_action_status: "200",
    	signature: "",
    	key: "",
    	policy: "",
    }
    ossDir: string = ""; // oss 的文件夹名字
    ossHost:string = ""; // oss的域名
    
  3. 然后就要自己写 FormData 配合 axios 实现上传功能了
    重点:file 必须在最后
    let formData = new FormData()
     for (let key in this.ossData){
       formData.append(key, this.ossData[key]);
     }
     formData.append("file", base64ToFile(this.resultImg,name));
     axios.post(this.ossHost,formData,{
         headers: {
           'Content-Type': 'multipart/form-data',
         }}).then((res:any)=>{
           console.log(res)
         })
    

返回的结果
在这里插入图片描述
file_url 就是 oss上图片的路径url(有时间限制),filename 是存在后端数据库的,每次请求 filename 这张图片,后端要生成一个有过期时间的 file_url 给到前端。
这整个 base64 上传 oss 操作就完成了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值