File Upload
Ein FileUploadDialog ist ein modales Dialogfeld, das es dem Benutzer ermöglicht, Dateien von seinem lokalen Dateisystem hochzuladen. Das Dialogfeld blockiert die App-Ausführung, bis der Benutzer Dateien zum Hochladen auswählt oder das Dialogfeld schließt.
Anwendungen
Der FileUploadDialog bietet eine Möglichkeit, Dateien auszuwählen und hochzuladen, sodass Benutzer Dokumente, Bilder oder andere Dateitypen einreichen können, die von der App benötigt werden. Verwenden Sie showFileUploadDialog(), um das Dialogfeld anzuzeigen und die hochgeladene Datei zu erfassen.
UploadedFile result = OptionDialog.showFileUploadDialog("Datei hochladen");
Ergebnis
Der FileUploadDialog gibt ein UploadedFile-Objekt zurück, das Informationen über die hochgeladene Datei enthält, wie z. B. ihren Namen, ihre Größe und ihren Inhalt. Wenn der Benutzer das Dialogfeld schließt, ohne eine Datei auszuwählen, ist das Ergebnis null.
Der resultierende String wird von der show()-Methode oder der entsprechenden OptionDialog-Methode zurückgegeben, wie unten gezeigt.
Code anzeigen
- FileUploadDialogBasicView.java
Hochgeladene Dateien verschieben
Standardmäßig speichert webforJ hochgeladene Dateien in einem temporären Ordner, der regelmäßig gereinigt wird. Wenn Sie die Datei nicht woandershin verschieben, wird sie gelöscht. Um die Datei zu verschieben, verwenden Sie die move-Methode und geben Sie den Zielpfad an.
UploadedFile uploadedFile = OptionDialog.showFileUploadDialog("Wählen Sie eine Datei zum Hochladen aus");
try {
File file = uploadedFile.move("my/full/path/" + uploadedFile.getSanitizedClientName());
// ... tun Sie etwas mit der Datei
} catch (IOException e) {
// Ausnahme behandeln
}
Verwenden Sie die Methode getSanitizedClientName, um eine bereinigte Version des Namens der hochgeladenen Datei zu erhalten. Diese Methode trägt dazu bei, Sicherheitsrisiken wie Verzeichnisdurchquerungsangriffe oder ungültige Zeichen in Dateinamen zu verhindern und die Integrität und Sicherheit Ihres Dateispeichersystems zu gewährleisten.
Filter
Der FileUploadDialog ermöglicht es Ihnen, Filter festzulegen, um die Arten von Dateien zu beschränken, die für den Upload ausgewählt werden können. Sie können Filter mit der Methode setFilters(List<FileChooserFilter> filters) konfigurieren.
FileUploadDialog dialog = new FileUploadDialog(
"Datei hochladen",
Arrays.asList(new FileChooserFilter("Textdateien", "*.txt")));
UploadedFile result = dialog.show();
Der Server validiert die hochgeladene Datei nicht anhand der Filter. Die Filter werden nur in der Benutzeroberfläche angewendet, um die Auswahl des Benutzers zu leiten. Sie müssen die serverseitige Validierung implementieren, um sicherzustellen, dass die hochgeladenen Dateien den Anforderungen Ihrer App entsprechen.
Maximalgröße
Es ist möglich, die maximale Dateigröße für Uploads festzulegen, um sicherzustellen, dass Benutzer keine Dateien hochladen, die zu groß sind, um von Ihrer App verarbeitet zu werden. Dies kann mit der Methode setMaxFileSize(long maxSize) konfiguriert werden, wobei maxSize in Bytes angegeben wird.
dialog.setMaxFileSize(2 * 1024 * 1024); // Maximalgröße auf 2 MB setzen
Internationalisierung (i18n)
Die Titel, Beschreibungen, Beschriftungen und Nachrichten innerhalb der Komponente sind vollständig anpassbar mithilfe der Klasse FileUploadI18n. Diese Flexibilität ermöglicht es Ihnen, die Dialogoberfläche an spezifische Lokalisierungsanforderungen oder persönliche Präferenzen anzupassen.
FileUploadDialog dialog = new FileUploadDialog("Datei hochladen");
FileUploadI18n i18n = new FileUploadI18n();
i18n.setUpload("Hochladen");
i18n.setCancel("Abbrechen");
dialog.setI18n(i18n);
UploadedFile result = dialog.show();
Beste Praktiken
- Klare und präzise Aufforderungen: Stellen Sie sicher, dass die Aufforderungsnachricht klar erklärt, was der Benutzer hochladen soll.
- Geeignete Filter: Stellen Sie Dateifilter ein, die den erforderlichen Dateitypen entsprechen, um sicherzustellen, dass Benutzer relevante Dateien hochladen.
- Logische Ausgangspfad: Setzen Sie Anfangs-Pfade, die den Benutzern einen hilfreichen Ausgangspunkt für ihre Dateiauswahl bieten.
- Einschränkung der Verzeichnisnavigation: Beschränken Sie das Dialogfeld bei Bedarf auf ein bestimmtes Verzeichnis, um zu verhindern, dass Benutzer unbefugte Bereiche durchstöbern.
- Konsistente Gestaltung: Stimmen Sie das Design des Dialogs und des Upload-Felds mit dem Design Ihrer App ab, um ein einheitliches Benutzererlebnis zu gewährleisten.
- Weniger ist mehr: Verwenden Sie Datei-Upload-Dialoge sparsam, um die Frustration der Benutzer zu vermeiden. Reservieren Sie sie für Aktionen, die spezifische Benutzerdatei-Uploads erfordern.