Vaadin - téléchargez le fichier / enregistrer sous
J'essaie d'ajouter un bouton avec la fonction pour télécharger le fichier à partir de ressources externes
Button saveAsButton = new Button();
private FileDownloader fileDownloader;
fileDownloader = new FileDownloader(new ExternalResource(........));
fileDownloader.extend(saveAsButton);
Cela ne fonctionne pas pour moi :/
pas d'erreurs dans le fond
où est votre ExternalResource situé?
fichier sur ma machine locale, aussi j'utilise Télécharger vaadin la mise en œuvre et toutes les œuvres de corriger
fichier sur ma machine locale, aussi j'utilise Télécharger vaadin la mise en œuvre et toutes les œuvres de corriger
OriginalL'auteur PDS | 2014-02-21
Vous devez vous connecter pour publier un commentaire.
Visée de ce lien.
Un fichier personnalisé downloader peut vous donner cette fonctionnalité. Ici c'est la coutume de la classe et de démonstration. Le principal avantage de l'utilisation de ce
AdvancedFileDownloader
plus intégrécom.vaadin.server.FileDownloader
est que vous pouvez changer de chemin d'accès au fichier sur chaque clic sur le bouton. DansFileDownloader
, une fois qu'un fichier est défini, il ne peut pas être changé, c'est à dire un bouton pour télécharger le même fichier sur chaque clic.AdvancedFileDownloader.java :-
Et la démo codo à exécuter. Dans ce code, vous devez donner le chemin d'accès au fichier pour télécharger le fichier.
La
beforeDownload
méthode sera invoquée lorsque vous cliquez sur le bouton de téléchargement de sorte que le chemin d'accès du fichier peut être modifié à télécharger un fichier différent.est-il bien fonctionner dans un environnement de serveur? Assurez-vous que le chemin d'accès est valide au moment du téléchargement. Pouvez-vous vérifier que :- essayez d'Abord avec un exemple de fichier texte contenant plus de 64 ko de données et essayez d'imprimer le contenu du fichier dans
beforeDownload
méthode elle-même, et de vérifier qu'il imprime la totalité du contenu.Oui, il fonctionne sur la non-environnements de machines virtuelles. Le fichier est généré de façon dynamique et stocké sur le disque avec Fileoutputstream et.close() avant de me passer le nom de fichier pour le télécharger.
Je pense que, la voie ne peut pas être lisible à partir de l'environnement des machines virtuelles même si le fichier est créé dans le disque, le chemin de base pourraient être différents lorsque vous accédez au fichier de la vm de l'environnement. Et aussi, assurez-vous que le chemin/fichier a la permission d'être consulté.
OriginalL'auteur Visruth
Utiliser un FileResource au lieu de ExternalResource.
Afin de vous proposer un fichier en téléchargement, ce qui suit a été prouvé:
Je utiliser un chemin relatif et obtenez l'erreur (Fichier non trouvé: télécharger?fileId=3174), je vais essayer de chemin d'accès absolu. De toute façon quand j'utilise BrowserWindowOpener bwo = new BrowserWindowOpener("/télécharger?fileId=" + fichier.getFileId()); bwo.étendre(bouton); il n'y a pas de problème pour afficher l'aperçu
il fait pour moi aucun sens pour faire référence à un local situé fichier par le biais d'un fileprovider comme vous l'avez fait avec "télécharger?..." Le FileResource prend un fichier de référence dans son constructeur!
OriginalL'auteur nexus
J'ai deux méthodes et il y a quelques paramètres.
OriginalL'auteur stephan