diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 672fc1d770b38..7ab88ed61bdbd 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -215,6 +215,12 @@ OC.FileUpload.prototype = { var data = this.data; var file = this.getFile(); + // if file is a directory, just create it + // files are handled separately + if (file.isDirectory) { + return this.uploader.ensureFolderExists(OC.joinPaths(this._targetFolder, file.fullPath)); + } + if (self.aborted === true) { return $.Deferred().resolve().promise(); } diff --git a/apps/files/js/jquery.fileupload.js b/apps/files/js/jquery.fileupload.js index ea8529f322620..cc0c97ba3edeb 100644 --- a/apps/files/js/jquery.fileupload.js +++ b/apps/files/js/jquery.fileupload.js @@ -1029,7 +1029,12 @@ } else { paramNameSet = paramName; } - data.originalFiles = files; + data.originalFiles = []; + $.each(files, function (file) { + if (!file.isDirectory) { + data.originalFiles.push(file); + } + }); $.each(fileSet || files, function (index, element) { var newData = $.extend({}, data); newData.files = fileSet ? element : [element]; @@ -1098,7 +1103,12 @@ entries, path + entry.name + '/' ).done(function (files) { - dfd.resolve(files); + // empty folder + if (!files.length && entry.isDirectory) { + dfd.resolve(entry); + } else { + dfd.resolve(files); + } }).fail(errorHandler); }, readEntries = function () { @@ -1486,4 +1496,4 @@ }); -})); \ No newline at end of file +}));