feature(listeners) load files directly to server, without reading them

This commit is contained in:
coderaiser 2014-04-14 09:06:44 -04:00
parent 0a30d02128
commit aeb36f4241
4 changed files with 45 additions and 23 deletions

View file

@ -38,9 +38,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
var classes, isSVG,
name = 'loading',
id = ID + name,
element = Images[id];
element = Images[id],
parent = element && element.parentElement;
if (!element) {
if (!element || !parent) {
classes = Classes + ' ' + name;
isSVG = DOM.isSVG();
@ -61,9 +62,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
var classes,
name = 'error',
id = ID + name,
element = Images[id];
element = Images[id],
parent = element && element.parentElement;
if (!element) {
if (!element || !parent) {
classes = Classes + ' ' + name;
Images[id] =

View file

@ -303,34 +303,38 @@ var Util, DOM, CloudCmd;
DOM.toggleClass(panels[i], 'selected-panel');
},
onDrop = function (event) {
var reader, file, files,
var file, files,
func = CloudCmd.refresh,
dir = Info.dirPath,
load = function(file, event) {
load = function(file, callback) {
var Images = DOM.Images,
isFunc = Util.isFunction(file),
name = file.name,
path = dir + name,
data = event.target.result;
path = dir + name;
Images.showLoad({top: true});
Images.setProgress(0, name);
DOM.RESTful.write(path, data, CloudCmd.refresh);
if (isFunc) {
callback = file;
Util.exec(callback);
} else {
Images.showLoad({top: true});
Images.setProgress(0, name);
DOM.RESTful.write(path, file, callback);
}
};
preventDefault(event);
toggle();
files = event.dataTransfer.files;
if (files.length) {
n = files.length;
files = event.dataTransfer.files;
n = files.length;
if (n) {
for (i = 0; i < n; i++) {
reader = new FileReader();
file = files[i];
Events.add('load', Util.bind(load, file), reader);
reader.readAsArrayBuffer(file);
file = files[i];
func = Util.bind(load, file, func);
}
func();
}
};

View file

@ -121,12 +121,13 @@ var Util, DOM, CloudFunc, CloudCmd;
CloudCmd.getConfig(function(config) {
var data,
isString = Util.isString(p.data),
isArrayBuffer = Util.isArrayBuffer(p.data);
isArrayBuffer = Util.isArrayBuffer(p.data),
isFile = Util.isFile(p.data);
if (Util.isString(p.url))
p.url = decodeURI(p.url);
if (p.data && !isString && !isArrayBuffer)
if (p.data && !isString && !isArrayBuffer && !isFile)
data = Util.stringifyJSON(p.data);
else
data = p.data;

View file

@ -687,6 +687,21 @@
return Util.isType(variable, 'undefined');
};
/**
* functions check is variable is File
* @param variable
*/
this.isFile = function(variable) {
var FILE = '[object File]',
name, is;
name = Util.execIfExist(variable, 'toString');
is = name === FILE;
return is;
};
/**
* functions check is variable is pType
* @param variable