如何上传base64编码图片到七牛云

news/2024/7/7 10:28:11

接口说明

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

<Base64EncodedFileContent>
  • <Fsize>: 文件大小,必选。

  • <EncodedKey>: 可选,如果没有指定则:如果 uptoken.SaveKey 存在则基于 SaveKey 生产 key,否则用 hash 值作 key。

  • <EncodedMimeType>: 文件的 MIME 类型。可选,默认是 application/octet-stream。

  • <Crc32>: 文件内容的 crc32 校验值。可选,不指定则不进行校验。

  • Host :上传域名up.qiniu.com 用于服务端上传,upload.qiniu.com 用于客户端的上传

返回包:

200 OK {
  hash: <ETag>
}

通过javascript方式上传:

javascript代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function  putb64(){
   var  pic =  "填写你的base64后的字符串" ;
   var  url =  "http://upload.qiniu.com/putb64/20264" ;
   var  xhr =  new  XMLHttpRequest();
   xhr.onreadystatechange= function (){
     if  (xhr.readyState==4){
       document.getElementById( "myDiv" ).innerHTML=xhr.responseText;
     }
   }
   xhr.open( "POST" , url,  true );
   xhr.setRequestHeader( "Content-Type" "application/octet-stream" );
   xhr.setRequestHeader( "Authorization" "UpToken  填写你从服务端获取的上传token" );
   xhr.send(pic);
}

注意事项:

  1. var url = "http://upload.qiniu.com/putb64/20264"; 这里的20264是你的图片的没经过base64处理的原图的字节大小。

  2. xhr.setRequestHeader("Authorization", "UpToken 填写你从服务端获取的上传token"); 这里的UpToken与后面的字符串保留一个空格。后面跟上你在服务端请求的token的字符串。具体你通过什么样子的请求方式获得是客户自己要关心的事情。

  3. 获取文件大小的时候,切记要通过文件流的方式获取。而不是通过图片标签然后转换后获取。

  4. var url = "http://upload.qiniu.com/putb64/20264"; 中可以扩展为以下方式:http://upload.qiniu.com/putb64/Fsize/key/EncodedKey/mimeType/EncodedMimeType/x:user-var/EncodedUserVarVal

  • Fsize: 文件大小,必选。支持传入 -1 表示文件大小以 http request body 为准。

  • EncodedKey: 可选,如果没有指定则:如果 uptoken.SaveKey 存在则基于 SaveKey 生产 key,否则用 hash 值作 key。 .

  • 整个EncodedKey需要经过base64编码!!

  • 如:
  • var key = uuid();
    key = base64encode(key);
    var url = 'http://upload.qiniu.com/putb64/-1/key/'+key
  • 具体可以参照: http://developer.qiniu.com/docs/v6/api/overview/appendix.html#urlsafe-base64

  • EncodedMimeType: 文件的 MIME 类型。可选,默认是 application/octet-stream。

  • 举例:上传后并指定自定义的key: http://upload.qiniu.com/putb64/12345/key/usxxeigng=

转载于:https://www.cnblogs.com/fdw-bk/p/5807739.html


http://www.niftyadmin.cn/n/541525.html

相关文章

区块链毕设资料【2019-1】

2019独角兽企业重金招聘Python工程师标准>>> 区块链作为一种崭新的、颠覆性的技术&#xff0c;是国内外活跃的研究领域和毕业设计选题方向。本文列出最新的一组区块链方面的论文&#xff0c;希望可以对选择区块链毕业设计的同学们有所帮助&#xff0c;这是汇智网编辑…

八个造成 Android 应用内存泄露的原因

八个造成 Android 应用内存泄露的原因 转载 2016年07月22日 22:37:03 原文链接 : Eight Ways Your Android App Can Leak Memory原文作者 : Tom Huzij译文出自 : 掘金翻译计划译者 : zhangzhaoqi校对者: Jasper Zhong&#xff0c;江湖迈杰 诸如 Java 这样的 GC &#xff08;…

iOS开发-模仿动态增加或者删除cell并自动增加变化高度

今天给同学们讲一下在项目开发中我们经常会碰到这样的需求&#xff0c;动态的添加或者删除某一行显示数据并且重新布局Frame&#xff0c;那么废话不多说&#xff0c;直接上代码&#xff01;先看演示视频&#xff1a; // // ZZCustomAddView.h // 动态变化frame // // Cr…

BZOJ4300:绝世好题(DP)

Description 给定一个长度为n的数列ai&#xff0c;求ai的子序列bi的最长长度&#xff0c;满足bi&bi-1!0(2<i<len)。Input 输入文件共2行。第一行包括一个整数n。第二行包括n个整数&#xff0c;第i个整数表示ai。Output 输出文件共一行。包括一个整数&#xff0c;表示…

开始记录

测试&#xff01;转载于:https://www.cnblogs.com/Aldj/articles/5810195.html

iOS开发-JS与原生OC互相调用之JavaScriptCore

## 近期由于工作和个人的闲置没有及时的更新博客&#xff0c;为此对各位同学表示抱歉&#xff0c;那么废话不多说&#xff0c;今天我们就聊聊那些在iOS中JS与原生OC互相调用,那么废话不多说,直接上代码&#xff5e; 本文摘抄自&#xff1a;https://hjgitbook.gitbooks.io/ios/…

c#安全性、稳定性、高性能需要注重的点

1、弱事件 2、类型安全&#xff08;包括类型转换时可能的异常&#xff09; 3、线程安全 5、装箱和拆箱 6、闭包传递局部变量时可能遇到的问题。 7、用于dictionary的键&#xff0c;要同时实现GetHashCode和Equals的重写并且满足一定规则。 8、重写操作符特别是类型强制转换符的…

PostgreSQL_FDW_安装和简单使用

背景环境 在使用异构数据库构建数据平台的过程中&#xff0c;异构数据库之间的访问一直是比较复杂的问题。我们使用PostgeSQL的过程中&#xff0c;遇到需要访问MySQL实时数据的场景。可供我们选择的方案包括 使用OGG等三方工具实现实时数据复制&#xff1b;使用PostgreSQL的DBL…