Boîte de dialogue de téléchargement de fichier
Une FileUploadDialog
est une boîte de dialogue modale conçue pour permettre à l'utilisateur de télécharger des fichiers depuis son système de fichiers local. La boîte de dialogue bloque l'exécution de l'application jusqu'à ce que l'utilisateur sélectionne des fichiers à télécharger ou ferme la boîte de dialogue.
UploadedFile result = OptionDialog.showFileUploadDialog("Télécharger un fichier");
Utilisations
La FileUploadDialog
fournit un moyen de sélectionner et de télécharger des fichiers, permettant aux utilisateurs de soumettre des documents, des images ou d'autres types de fichiers requis par l'application.
Résultat
La FileUploadDialog
retourne un objet UploadedFile
qui contient des informations sur le fichier téléchargé, telles que son nom, sa taille et son contenu. Si l'utilisateur ferme la boîte de dialogue sans sélectionner un fichier, le résultat sera null
.
La chaîne résultante sera renvoyée par la méthode show()
, ou la méthode équivalente d'OptionDialog
comme montré ci-dessous.
Afficher le code
- Java
Déplacement des fichiers téléchargés
Par défaut, webforJ stocke les fichiers téléchargés dans un dossier temporaire qui est régulièrement nettoyé. Si vous ne déplacez pas le fichier ailleurs, il sera supprimé. Pour déplacer le fichier, utilisez la méthode move
et spécifiez le chemin de destination.
UploadedFile uploadedFile = OptionDialog.showFileUploadDialog("Sélectionner un fichier à télécharger");
try {
File file = uploadedFile.move("mon/chemin/complet/" + uploadedFile.getSanitizedClientName());
// ... faire quelque chose avec le fichier
} catch (IOException e) {
// gérer l'exception
}
Utilisez la méthode getSanitizedClientName
pour obtenir une version assainie du nom du fichier téléchargé. Cette méthode contribue à prévenir les risques de sécurité tels que les attaques par traversée de répertoire ou les caractères invalides dans les noms de fichiers, garantissant l'intégrité et la sécurité de votre système de stockage de fichiers.
Filtres
La FileUploadDialog
vous permet de définir des filtres pour limiter les types de fichiers qui peuvent être sélectionnés pour le téléchargement. Vous pouvez configurer des filtres en utilisant la méthode setFilters(List<FileChooserFilter> filters)
.
FileUploadDialog dialog = new FileUploadDialog(
"Télécharger un fichier",
Arrays.asList(new FileChooserFilter("Fichiers texte", "*.txt")));
UploadedFile result = dialog.show();
Le serveur ne validera pas le fichier téléchargé par rapport aux filtres. Les filtres ne sont appliqués qu'au niveau de l'interface utilisateur pour guider la sélection de l'utilisateur. Vous devez mettre en œuvre une validation côté serveur pour vous assurer que les fichiers téléchargés répondent aux exigences de votre application.
Taille maximale
Il est possible de définir la taille maximale des fichiers pour les téléchargements afin de garantir que les utilisateurs ne téléchargent pas de fichiers trop volumineux pour votre application. Cela peut être configuré en utilisant la méthode setMaxFileSize(long maxSize)
, où maxSize est spécifié en octets.
dialog.setMaxFileSize(2 * 1024 * 1024); // Définir la taille maximale à 2 Mo
Internationalisation (i18n)
Les titres, descriptions, étiquettes et messages à l'intérieur du composant sont entièrement personnalisables en utilisant la classe FileUploadI18n
. Cette flexibilité vous permet d'adapter l'interface de la boîte de dialogue pour répondre à des exigences de localisation spécifiques ou à des préférences de personnalisation.
FileUploadDialog dialog = new FileUploadDialog("Télécharger un fichier");
FileUploadI18n i18n = new FileUploadI18n();
i18n.setUpload("Télécharger");
i18n.setCancel("Annuler");
dialog.setI18n(i18n);
UploadedFile result = dialog.show();
Meilleures pratiques
- Invitations claires et concises : Assurez-vous que le message d'invitation explique clairement ce que l'on demande à l'utilisateur de télécharger.
- Filtres appropriés : Définissez des filtres de fichiers qui correspondent aux types de fichiers requis pour garantir que les utilisateurs téléchargent des fichiers pertinents.
- Chemins initiaux logiques : Définissez des chemins initiaux qui fournissent aux utilisateurs un point de départ utile pour leur sélection de fichiers.
- Restreindre la navigation dans les répertoires : Restreignez la boîte de dialogue à un répertoire spécifique lorsque cela est nécessaire pour empêcher les utilisateurs de naviguer vers des zones non autorisées.
- Thématique cohérente : Alignez les thèmes de la boîte de dialogue et du champ de téléchargement avec le design de votre application pour une expérience utilisateur cohérente.
- Minimiser l'usage excessif : Utilisez les boîtes de dialogue de téléchargement de fichiers avec parcimonie pour éviter de frustrer les utilisateurs. Réservez-les pour des actions nécessitant des téléchargements de fichiers spécifiques par les utilisateurs.