diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js
index 7c93863705aba08128976c574370f49fe786659e..bdf4638859c60f3ccc47a29e233f1cbdada0ba6b 100644
--- a/packages/data-table-view/src/data-table-view.js
+++ b/packages/data-table-view/src/data-table-view.js
@@ -185,8 +185,9 @@ export class DataTableView extends LitElement {
         this.data = data;
 
         this.table.clear();
-        if (this.data.length) { this.table.rows.add(this.data); }
-        this.table.order(this.defaultOrder).draw();
+        if (this.data.length) {
+            this.table.rows.add(this.data);
+        }
 
         new $.fn.dataTable.Responsive(this.table, {
             details: true
@@ -213,6 +214,10 @@ export class DataTableView extends LitElement {
                     }
                 });
         }
+
+        this.table.order(this.defaultOrder);
+        this.table.draw();
+
         return this;
     }
 
diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js
index b7d0b1efcbc70cbc86f259c8cbe402c2379ff3f2..8b2ee1ae8027fe6efa703405a606041258b7a139 100644
--- a/packages/file-handling/src/dbp-nextcloud-file-picker.js
+++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js
@@ -306,6 +306,36 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         });
     }
 
+    uploadFiles(files) {
+        files.forEach((fileData) => this.uploadFile(fileData));
+    }
+
+    uploadFile(fileData) {
+        this.statusText = "Uploading " + fileData.filename + "...";
+
+        console.log(fileData);
+
+        // https://github.com/perry-mitchell/webdav-client#putfilecontents
+        this.webDavClient
+            .putFileContents(fileData.filename, f)
+            .then(contents => {
+                // create file to send via event
+                const file = new File([contents], fileData.basename, { type: fileData.mime });
+                console.log("binaryFile", file);
+
+                // send event
+                const data = {"file": file, "data": fileData};
+                const event = new CustomEvent("dbp-nextcloud-file-picker-file-uploaded",
+                    { "detail": data, bubbles: true, composed: true });
+                this.dispatchEvent(event);
+
+                this.statusText = "";
+            }).catch(error => {
+                console.error(error.message);
+                this.statusText = error.message;
+        });
+    }
+
     /**
      * Returns the parent directory path
      *