About-简介

官方文档

官方jssdk实现

  • 顽兔html5 js上传组件

使用方法

window.uploadJSSDK({
    file: File,   //文件,必填,html5 file类型,不需要读数据流
    token: 'test',  //鉴权token,必填
    dir: '',  //目录,选填,默认根目录''
    retries: 0,  //重试次数,选填,默认0不重试
    maxSize: 0,  //上传大小限制,选填,默认0没有限制
    chunkSize: 4*1024*1024,  //分片上传每片大小,选填,默认4M
    name: "test",  //文件名称,选填,默认为文件名称
    callback: function (percent, result) {
        //percent(上传百分比):-1失败;0-100上传的百分比;100即完成上传
        //result(服务端返回的responseText,json格式)
    }
});

upfile.js分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (!file || !token) {
callback(-1, '上传文件参数必须配置file以及token');
return;
}
if (maxSize && file.size > maxSize) {
callback(-1, "文件大小不能超过"+maxSize);
return;
}
if (file.size > chunkSize) {
//分块上传
startChunks();
} else {
//普通上传
uploadSingle();
}

uploadSingle-普通上传

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function uploadSingle() {
var formData = new FormData();
formData.append('dir', dir);
formData.append('name', configName);
formData.append('size', file.size);
formData.append('content', file);
var url = upload_url;
ajax(url, formData, function (e) {
var status = e.status,
message = e.statusText || "";
if (status == 200 && message == "OK") {
callback(100, JSON.parse(e.responseText));
} else {
handleError(JSON.parse(e.responseText), "", "", status);
}
});
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function ajax(url,data,complete){
var request = new XMLHttpRequest();
var query = 'Authorization=' + token + '&UserAgent=ALIMEDIASDK_WORKSTATION';
if(url.indexOf('?') > -1){
url += '&' + query;
}else{
url += '?' + query;
}
request.open('POST', url);
request.onload = function(e) {
complete(request);
};
request.send(data);
}

配合plupload.js使用