Téléchargement de fichiers à l'aide de RichFaces
Je suis actuellement à la recherche d'un transfert de fichier à l'aide de Java Server Faces. J'ai trouvé cette excellente introduction à l'aide de RichFaces. Cependant, j'ai quelques problèmes pour comprendre le processus ici.
D'abord l'utilisateur sélectionne un fichier et si le téléchargement immédiat est défini à true, le fichier est traité à l'aide d'ajax, c'est très bien. Quand il s'agit de la prochaine étape, cependant, l'auditeur sur le Haricot côté suivantes me confond:
public void listener(UploadEvent event) throws Exception{
UploadItem item = event.getUploadItem();
File f = item.getFile();
System.out.println(f.getAbsolutePath());
}
Le chemin Absolu est un répertoire temp sur mon ordinateur, je comprendrai, mais comment voulez-vous rendre le fichier disponible à la webbapplication? Mon application est déployée comme une GUERRE de fichier. Est-il possible de le Télécharger à la GUERRE? Peut sembler stupide, mais il pourrait effectivement être utile.
Je suis pleinement conscient que je peux renommer le fichier à copier vers un nouvel emplacement, mais est-ce que le chemin à parcourir?
OriginalL'auteur Filip Ekberg | 2009-10-22
Vous devez vous connecter pour publier un commentaire.
Écrit des choses à votre GUERRE répertoire (en supposant que la GUERRE est encore explosé comme un répertoire) est, en général, une mauvaise idée (pour les mêmes raisons que le stockage de vos données dans le répertoire de votre application est généralement une mauvaise idée).
Vous souhaiterez probablement à la fin dans un magasin de persistance, généralement une base de données. Exactement comment vous gérer, c'est à vous - si vous utilisez le système de fichiers et les stocker une référence dans la base de données ou de stocker un BLOB dans la base de données directement, et si vous utilisez JDBC ou JPA ou Hibernate, etc.
La liste des fichiers téléchargés pourrait alors être lu à partir de la base de données en rafraîchissant le panneau qui les contenait en utilisant quelque chose comme
<a4j:support event="onuploadcomplete" reRender="info" />
.Le téléchargement d'un fichier de servlet (si RichFaces n'en a pas) est assez facile à écrire.
Avez-vous jamais comprendre comment créer de télécharger des servlet, Filip? J'ai joué avec le composant fileUpload et je ne peux pas pour la vie de me comprendre où un fichier passe après que j'ai télécharger.
OriginalL'auteur McDowell
Pas sûr de combien d'aide c'est (et sans doute trop tard!), mais c'est le code que j'utilise sur le côté serveur, équivalent à votre écoute.
La grande question est de vous dire "comment voulez-vous rendre le fichier disponible à la webbapplication?". Le tableau d'octets est disponible immédiatement. Si vous voulez re-télécharger le fichier, vous pouvez fournir un lien vers une méthode dans un JSF session/vue bean comme:
OriginalL'auteur Greg