About-简介
官方文档
官方jssdk实现
使用方法
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使用