接口說明
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);
}
|
注意事項:
-
var url = "http://upload.qiniu.com/putb64/20264";
這里的20264是你的圖片的沒經過base64處理的原圖的字節大小。 -
xhr.setRequestHeader("Authorization", "UpToken 填寫你從服務端獲取的上傳token");
這里的UpToken與后面的字符串保留一個空格。后面跟上你在服務端請求的token的字符串。具體你通過什么樣子的請求方式獲得是客戶自己要關心的事情。 -
獲取文件大小的時候,切記要通過文件流的方式獲取。而不是通過圖片標簽然后轉換后獲取。
-
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=