如何上傳base64編碼圖片到七牛雲


接口說明

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=


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM