diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js index 92f0110c699397b9e50f9f095e97b919c50ce2a7..1cc95dd76ebc67749efb70419cedfbceb36595b4 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 *