Bestanden Upload Dialoog
Een FileUploadDialog
is een modale dialoog die is ontworpen om de gebruiker in staat te stellen bestanden van hun lokale bestandssysteem te uploaden. De dialoog blokkeert de uitvoering van de app totdat de gebruiker bestanden selecteert om te uploaden of de dialoog sluit.
UploadedFile result = OptionDialog.showFileUploadDialog("Upload een bestand");
Gebruik
De FileUploadDialog
biedt een manier om bestanden te selecteren en te uploaden, waardoor gebruikers documenten, afbeeldingen of andere bestandstypen kunnen indienen die door de app vereist zijn.
Resultaat
De FileUploadDialog
retourneert een UploadedFile
object dat informatie bevat over het geüploade bestand, zoals de naam, grootte en inhoud. Als de gebruiker de dialoog sluit zonder een bestand te selecteren, is het resultaat null
.
De resulterende string wordt geretourneerd vanuit de show()
methode of de overeenkomstige OptionDialog
methode zoals hieronder getoond.
Toon code
- Java
Geüploade bestanden verplaatsen
Standaard slaat webforJ geüploade bestanden op in een tijdelijke map die regelmatig wordt geleegd. Als je het bestand niet ergens anders verplaatst, wordt het verwijderd. Om het bestand te verplaatsen, gebruik je de move
methode en geef je het doelpad op.
UploadedFile uploadedFile = OptionDialog.showFileUploadDialog("Selecteer een bestand om te uploaden");
try {
File file = uploadedFile.move("mijn/volledige/pad/" + uploadedFile.getSanitizedClientName());
// ... doe iets met het bestand
} catch (IOException e) {
// handel de uitzondering af
}
Gebruik de getSanitizedClientName
methode om een gezuiverde versie van de naam van het geüploade bestand te verkrijgen. Deze methode helpt om beveiligingsrisico's te voorkomen, zoals directory traversal aanvallen of ongeldige tekens in bestandsnamen, en garandeert de integriteit en beveiliging van je bestandsopslagsysteem.
Filters
De FileUploadDialog
stelt je in staat om filters in te stellen om de types bestanden te beperken die kunnen worden geselecteerd voor uploaden. Je kunt filters configureren met de setFilters(List<FileChooserFilter> filters)
methode.
FileUploadDialog dialog = new FileUploadDialog(
"Upload een bestand",
Arrays.asList(new FileChooserFilter("Tekstbestanden", "*.txt")));
UploadedFile result = dialog.show();
De server zal het geüploade bestand niet valideren op basis van de filters. De filters worden alleen toegepast in de UI om de selectie van de gebruiker te begeleiden. Je moet server-side validatie implementeren om ervoor te zorgen dat de geüploade bestanden voldoen aan de vereisten van je app.
Maximale grootte
Het is mogelijk om de maximale bestandsgrootte voor uploads in te stellen om ervoor te zorgen dat gebruikers geen bestanden uploaden die te groot zijn voor je app om te verwerken. Dit kan worden geconfigureerd met de setMaxFileSize(long maxSize)
methode, waarbij maxSize wordt opgegeven in bytes.
dialog.setMaxFileSize(2 * 1024 * 1024); // Stel maximale grootte in op 2 MB
Internationalisatie (i18n)
De titels, beschrijvingen, labels en berichten binnen de component zijn volledig aanpasbaar met behulp van de FileUploadI18n
klasse. Deze flexibiliteit stelt je in staat om de interface van de dialoog aan te passen aan specifieke lokalisatievereisten of personalisatievoorkeuren.
FileUploadDialog dialog = new FileUploadDialog("Bestand uploaden");
FileUploadI18n i18n = new FileUploadI18n();
i18n.setUpload("Uploaden");
i18n.setCancel("Annuleren");
dialog.setI18n(i18n);
UploadedFile result = dialog.show();
Beste praktijken
- Duidelijke en Bondige Vragen: Zorg ervoor dat de vraag duidelijk uitlegt wat de gebruiker wordt gevraagd te uploaden.
- Geschikte Filters: Stel bestandsfilters in die overeenkomen met de vereiste bestandstypen om ervoor te zorgen dat gebruikers relevante bestanden uploaden.
- Logische Beginpaden: Stel beginpaden in die gebruikers voorzien van een nuttig uitgangspunt voor hun bestandsselectie.
- Beperk Directory Navigatie: Beperk de dialoog tot een specifieke directory wanneer dat nodig is om te voorkomen dat gebruikers ongeautoriseerde gebieden betreden.
- Consistente Thema's: Stem de thema's van de dialoog en het uploadveld af op het ontwerp van je app voor een samenhangende gebruikerservaring.
- Minimaliseer Overmatig Gebruik: Gebruik bestandsuploaddialoogvensters spaarzaam om frustratie bij gebruikers te voorkomen. Bewaar ze voor acties die specifieke gebruikersbestandsuploads vereisen.