File Upload
Un FileUploadDialog est une boîte de dialogue modale conçue pour permettre à l'utilisateur de télécharger des fichiers à partir de 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.
Si vous souhaitez un sélecteur de fichiers qui s'affiche directement dans la mise en page de la page au lieu d'une boîte de dialogue, envisagez d'utiliser le composant Upload.
Usages
Le 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. Utilisez showFileUploadDialog() pour afficher la boîte de dialogue et capturer le fichier téléchargé.
UploadedFile result = OptionDialog.showFileUploadDialog("Télécharger un fichier");
Résultat
Le 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 de 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 indiqué ci-dessous.
Afficher le code
- FileUploadDialogBasicView.java
Déplacer les 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("my/full/path/" + 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 aide à prévenir les risques de sécurité tels que les attaques de traversal de répertoires 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
Le FileUploadDialog vous permet de définir des filtres pour limiter les types de fichiers pouvant être sélectionnés pour le téléchargement. Vous pouvez configurer des filtres à l'aide de 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 s'appliquent que dans l'interface utilisateur pour orienter la sélection de l'utilisateur. Vous devez implémenter la validation côté serveur pour vous assurer que les fichiers téléchargés répondent aux exigences de votre application.
Taille max
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 que votre application puisse les traiter. 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 max à 2 Mo
Internationalisation (i18n)
Les titres, descriptions, étiquettes et messages au sein du composant sont entièrement personnalisables à l'aide de 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'utilisateur est invité à télécharger.
- Filtres appropriés : Définissez des filtres de fichiers correspondant 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 le cas échéant pour empêcher les utilisateurs de naviguer vers des zones non autorisées.
- Thèmes cohérents : 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'utilisation excessive : Utilisez les boîtes de dialogue de téléchargement de fichiers avec parcimonie pour éviter la frustration des utilisateurs. Réservez-les pour les actions nécessitant des téléchargements de fichiers spécifiques par l'utilisateur.