feature(dom) uploadFiles progress: every file -> all files

This commit is contained in:
coderaiser 2015-07-21 05:28:29 -04:00
parent 8b4fbb1998
commit 7ca07cdc1d
4 changed files with 96 additions and 77 deletions

View file

@ -1,4 +1,9 @@
var Util, DOM;
/* global Util */
/* global DOM */
/* global CloudFunc */
/* global CloudCmd */
/* global Emitify */
/* global async */
(function (Util, DOM) {
'use strict';
@ -162,7 +167,7 @@ var Util, DOM;
*/
load.ajax = function(params) {
var data,
p = params, countProgress,
p = params,
isObject = Util.type.object(p.data),
isArray = Util.type.array(p.data),
isArrayBuf = Util.type(p.data) === 'arraybuffer',
@ -185,21 +190,6 @@ var Util, DOM;
else
data = p.data;
Events.add('progress', xhr.upload, function(event) {
var percent, count;
if (event.lengthComputable) {
percent = (event.loaded / event.total) * 100;
count = Math.round(percent);
if (countProgress)
Images.setProgress(count);
countProgress = true;
}
});
Events.add('readystatechange', xhr, function(event) {
var TYPE_JSON, type, data, isContain, notText,
xhr = event.target,
@ -228,6 +218,48 @@ var Util, DOM;
xhr.send(data);
};
load.put = function(url, body) {
var emitter = Emitify(),
prefix = CloudCmd.PREFIX,
apiURL = prefix + CloudFunc.apiURL,
api = apiURL + '/fs',
xhr = new XMLHttpRequest();
url = encodeURI(url);
url = url.replace('#', '%23');
xhr.open('put', api + url, true);
xhr.upload.onprogress = function(event) {
var percent, count;
if (event.lengthComputable) {
percent = (event.loaded / event.total) * 100;
count = Math.round(percent);
emitter.emit('progress', count);
}
};
xhr.onreadystatechange = function() {
var error,
over = xhr.readyState === xhr.DONE,
OK = 200;
if (over)
if (xhr.status === OK) {
emitter.emit('end');
} else {
error = Error(xhr.responseText);
emitter.emit('error');
}
};
xhr.send(body);
return emitter;
};
load.ext = function(src, func) {
var element,
ext = Util.getExt(src);