六五、JS-SDK 上传base64编码图片到七牛云

本文介绍如何使用七牛云提供的接口上传Base64编码格式的图片,并提供了一个JavaScript上传示例代码。该接口支持指定文件大小、MIME类型等参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景

  • 七牛云上传功能基于 H5 File API,当使用H5 input Type=”file” 上传图片默认转为base64编码格式的图片,正常上传到七牛云返回的hash,后台拿到的是一个无法识别的文件,而七牛提供了针对base64编码格式的图片上传。

一、接口说明

POST /putb64/<Fsize>/key/<EncodedKey>/mimeType/<EncodedMimeType>/crc32/<Crc32>/x:user-var/<EncodedUserVarVal>
Host: upload.qiniup.com
Authorization: UpToken <UpToken>
Content-Type: application/octet-stream

参数名称是否必填说明
Fsize文件大小。支持传入 -1 表示文件大小以 http request body 为准。
EncodedKey如果 uptoken.SaveKey 存在则基于 SaveKey 生产 key,否则用 hash 值作 key。EncodedKey 需要经过 base64 编码。
EncodedMimeType文件的 MIME 类型,默认是 application/octet-stream。
Crc32文件内容的 crc32 校验值,不指定则不进行校验。
Hostupload.qiniup.com(华东区域加速上传域名) ,不同区域的http 和 https 域名详见不同存储区域对应的上传域名

二、JavaScript上传demo

  putb64(imgSource){
    window.Qapp.showLoad({content:'上传图片中!'}) //loading
    const { uptoken } = this.state  //上传验证信息,前端通过接口请求后端获得
    const pic = imgSource.replace('data:image/jpeg;base64,' ,'') //base64后的字符串
    const url = "http://upload.qiniup.com/putb64/-1"; //非华东空间需要根据注意事项
    const xhr = new XMLHttpRequest();
    xhr.onreadystatechange=()=>{
      if (xhr.readyState==4){
        window.Qapp.hideLoad()
        const dataInfo = JSON.parse(xhr.response) //将返回的字符串转化为JSON对象
        console.log(dataInfo)
        const { reportImg } = this.state
        reportImg.push(dataInfo.hash)
        this.setState({reportImg})
        this._submitReportInfo(reportImg)
      }
    }

    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/octet-stream");
    xhr.setRequestHeader("Authorization", `UpToken ${uptoken}`);
    xhr.send(pic);
}

tip



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值