]> git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/commitdiff
Support multifile upload via the webinterface
authorJohannes <johannes@cloudron.io>
Tue, 15 Nov 2016 15:56:03 +0000 (16:56 +0100)
committerJohannes <johannes@cloudron.io>
Tue, 15 Nov 2016 15:56:03 +0000 (16:56 +0100)
app/index.html
app/js/app.js

index b1c7da6a3efce62f8853102c93b57825d58b5888..80f9bdde4ea2ef1c00e3a641c18aac2acc851c30 100644 (file)
             <div class="col-lg-12">
                 <center>
                     <form id="fileUploadForm">
-                        <input type="file" v-el:upload style="display: none" id="uploadInput"/>
+                        <input type="file" v-el:upload style="display: none" id="uploadInput" multiple/>
                         <button class="btn btn-primary" v-on:click.stop.prevent="upload()" id="uploadButton">Upload</button>
                     </form>
                 </center>
index 739e9b12fb6842559f999aec584b752c52d1e4e5..9a2e532c5533e8eb5f9b40602923b3d8c37d9843 100644 (file)
@@ -129,21 +129,32 @@ function upload() {
         // detach event handler
         $(app.$els.upload).off('change');
 
-        var file = app.$els.upload.files[0];
-        var path = encode(sanitize(app.path + '/' + file.name));
+        var length = app.$els.upload.files.length;
+        var done = 0;
 
-        var formData = new FormData();
-        formData.append('file', file);
+        function uploadFile(file) {
+            var path = encode(sanitize(app.path + '/' + file.name));
 
-        superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send(formData).end(function (error, result) {
-            app.busy = false;
+            var formData = new FormData();
+            formData.append('file', file);
 
-            if (result && result.statusCode === 401) return logout();
-            if (result && result.statusCode !== 201) return console.error('Error uploading file: ', result.statusCode);
-            if (error) return console.error(error);
+            superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send(formData).end(function (error, result) {
+                if (result && result.statusCode === 401) return logout();
+                if (result && result.statusCode !== 201) console.error('Error uploading file: ', result.statusCode);
+                if (error) console.error(error);
 
-            refresh();
-        });
+                ++done;
+
+                if (done >= length) {
+                    app.busy = false;
+                    refresh();
+                }
+            });
+        }
+
+        for(var i = 0; i < length; i++) {
+            uploadFile(app.$els.upload.files[i]);
+        }
     });
 
     // reset the form first to make the change handler retrigger even on the same file selected