diff --git a/lib/client.js b/lib/client.js index 6eb74559..11b08a66 100644 --- a/lib/client.js +++ b/lib/client.js @@ -267,23 +267,31 @@ var Util, DOM, CloudFunc, CloudCmd; DOM.toggleClass(panels[i], 'selected-panel'); }, onDrop = function (event) { - var reader, file; + var reader, file, files, + dir = DOM.getCurrentDirPath(), + load = function(file){ + return function(event) { + var path = dir + file.name, + data = event.target.result; + + DOM.RESTfull.save(path, data, CloudCmd.refresh); + }; + }; + preventDefault(event); toggle(); - file = event.dataTransfer.files[0]; - if (file) { - reader = new FileReader(); + files = event.dataTransfer.files; + + if (files.length) { + n = files.length; - reader.onload = function(event){ - var dir = DOM.getCurrentDirPath(), - path = dir + file.name, - data = event.target.result; - - DOM.RESTfull.save(path, data, CloudCmd.refresh); - }; - - reader.readAsText(file); + for (i = 0; i < n; i++) { + reader = new FileReader(); + file = files[i]; + Events.add('load', load(file), reader); + reader.readAsArrayBuffer(file); + } } };