diff --git a/src/i18n/de/translation.json b/src/i18n/de/translation.json
index 8f4997740dd980b1dadf48fa9d8e7063d30f508b..b84b328faa5bb6c424b4af2c9fad107d403a27fa 100644
--- a/src/i18n/de/translation.json
+++ b/src/i18n/de/translation.json
@@ -1,6 +1,7 @@
 {
   "official-pdf-upload": {
     "upload-field-label": "PDF-Dokumente zum Signieren hochladen",
+    "upload-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "upload-area-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument per Drag & Drop oder per Direktauswahl hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "queued-files-label": "Dokumente in der Warteschlange",
     "queued-files-empty1": "Kein Dokument in der Warteschlange",
@@ -30,6 +31,7 @@
   },
   "qualified-pdf-upload": {
     "upload-field-label": "PDF-Dokumente zum Signieren hochladen",
+    "upload-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "upload-area-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument per Drag & Drop oder per Direktauswahl hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "current-signing-process-label": "Aktueller Signaturprozess",
     "queued-files-label": "Dokumente in der Warteschlange",
@@ -60,6 +62,7 @@
   },
   "signature-verification": {
     "upload-field-label": "PDF-Dokumente zum Überprüfen der Signaturen hochladen",
+    "upload-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "upload-area-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument per Drag & Drop oder per Direktauswahl hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "queued-files-label": "Dokumente in der Warteschlange",
     "queued-files-empty1": "Kein Dokument in der Warteschlange",
diff --git a/src/i18n/en/translation.json b/src/i18n/en/translation.json
index e20a48d4fb50682e461af2903dedbc935ff46079..6ef84ec4ef9d8acf3247dcec960d38aaa22402f4 100644
--- a/src/i18n/en/translation.json
+++ b/src/i18n/en/translation.json
@@ -1,6 +1,7 @@
 {
   "official-pdf-upload": {
     "upload-field-label": "Upload PDF-documents to sign",
+    "upload-text": "In this area you can upload PDF-documents up to a size of 32MB. The PDF-documents can also be located in a ZIP-file.",
     "upload-area-text": "In this area you can upload PDF-documents up to a size of 32MB via Drag & Drop or by selecting them directly. The PDF-documents can also be located in a ZIP-file.",
     "queued-files-label": "Queued documents",
     "queued-files-empty1": "No queued documents",
@@ -30,6 +31,7 @@
   },
   "qualified-pdf-upload": {
     "upload-field-label": "Upload PDF-documents to sign",
+    "upload-text": "In this area you can upload PDF-documents up to a size of 32MB. The PDF-documents can also be located in a ZIP-file.",
     "upload-area-text": "In this area you can upload PDF-documents up to a size of 32MB via Drag & Drop or by selecting them directly. The PDF-documents can also be located in a ZIP-file.",
     "current-signing-process-label": "Current signing process",
     "queued-files-label": "Queued documents",
@@ -60,6 +62,7 @@
   },
   "signature-verification": {
     "upload-field-label": "Upload PDF-documents to verify",
+    "upload-text": "In this area you can upload PDF-documents up to a size of 32MB. The PDF-documents can also be located in a ZIP-file.",
     "upload-area-text": "In this area you can upload PDF-documents up to a size of 32MB via Drag & Drop or by selecting them directly. The PDF-documents can also be located in a ZIP-file.",
     "queued-files-label": "Queued documents",
     "queued-files-empty1": "No queued documents",
diff --git a/src/vpu-official-signature-pdf-upload.js b/src/vpu-official-signature-pdf-upload.js
index 22a44c5f043a8379962997690a73e15c01985c4f..a101351191ae70f014d38732f7ad258cb0ac5318 100644
--- a/src/vpu-official-signature-pdf-upload.js
+++ b/src/vpu-official-signature-pdf-upload.js
@@ -702,7 +702,16 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitElem
                 <div class="field">
                     <h2>${i18n.t('official-pdf-upload.upload-field-label')}</h2>
                     <div class="control">
+                        <p>
+                            ${i18n.t('qualified-pdf-upload.upload-text')}
+                        </p>
+                        <button @click="${() => { this._("#file-source").setAttribute("dialog-open", ""); }}"
+                                ?disabled="${this.signingProcessActive}"
+                                class="button is-primary">
+                            ${i18n.t('qualified-pdf-upload.upload-button-label')}
+                        </button>
                         <vpu-file-source
+                            id="file-source"
                             allowed-mime-types="application/pdf"
                             nextcloud-auth-url="${this.showTestNextcloudFilePicker ? nextcloudWebAppPasswordURL : ""}"
                             nextcloud-web-dav-url="${nextcloudWebDavURL}"
diff --git a/src/vpu-qualified-signature-pdf-upload.js b/src/vpu-qualified-signature-pdf-upload.js
index d7535a3280d53a1fd1238b533d22dd66fd54cb82..a1af1e51f3df93486860f9be8470e02ad13953b5 100644
--- a/src/vpu-qualified-signature-pdf-upload.js
+++ b/src/vpu-qualified-signature-pdf-upload.js
@@ -872,7 +872,17 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitEle
                 <div class="field ${classMap({"is-disabled": this.isUserInterfaceDisabled()})}">
                     <h2>${i18n.t('qualified-pdf-upload.upload-field-label')}</h2>
                     <div class="control">
+                        <p>
+                            ${i18n.t('qualified-pdf-upload.upload-text')}
+                        </p>
+                        <button @click="${() => { this._("#file-source").setAttribute("dialog-open", ""); }}"
+                                ?disabled="${this.signingProcessActive}"
+                                class="button is-primary">
+                            ${i18n.t('qualified-pdf-upload.upload-button-label')}
+                        </button>
+
                         <vpu-file-source
+                            id="file-source"
                             allowed-mime-types="application/pdf"
                             nextcloud-auth-url="${this.showTestNextcloudFilePicker ? nextcloudWebAppPasswordURL : ""}"
                             nextcloud-web-dav-url="${nextcloudWebDavURL}"
diff --git a/src/vpu-signature-verification.js b/src/vpu-signature-verification.js
index 4022c531c5113fbcd4fca4e314e536f378ea2cb8..2c59133c856ee4de7b7e8df0b9b8d88c0a062a0e 100644
--- a/src/vpu-signature-verification.js
+++ b/src/vpu-signature-verification.js
@@ -671,7 +671,16 @@ class SignatureVerification extends ScopedElementsMixin(VPUSignatureLitElement)
                 <div class="field">
                     <h2>${i18n.t('signature-verification.upload-field-label')}</h2>
                     <div class="control">
+                        <p>
+                            ${i18n.t('qualified-pdf-upload.upload-text')}
+                        </p>
+                        <button @click="${() => { this._("#file-source").setAttribute("dialog-open", ""); }}"
+                                ?disabled="${this.signingProcessActive}"
+                                class="button is-primary">
+                            ${i18n.t('qualified-pdf-upload.upload-button-label')}
+                        </button>
                         <vpu-file-source
+                            id="file-source"
                             allowed-mime-types="application/pdf"
                             nextcloud-auth-url="${this.showTestNextcloudFilePicker ? nextcloudWebAppPasswordURL : ""}"
                             nextcloud-web-dav-url="${nextcloudWebDavURL}"
diff --git a/vendor/file-handling b/vendor/file-handling
index 56f744f842fea343f88fb0ef34f302f996a29061..bfea58b1ef01b3d222d210dcd61061278328764b 160000
--- a/vendor/file-handling
+++ b/vendor/file-handling
@@ -1 +1 @@
-Subproject commit 56f744f842fea343f88fb0ef34f302f996a29061
+Subproject commit bfea58b1ef01b3d222d210dcd61061278328764b