Ouverture d'un fichier non HTML [Servlet] - Java - Programmation
Marsh Posté le 10-06-2004 à 16:03:26
Oui, mais j'interviens justement sur ce post aussi.
Il n'y pas de solution de trouvée pour le moment.
Donc
Marsh Posté le 10-06-2004 à 17:04:06
The Flint a écrit : Enregistrer passe. Mais ouvrir plante, il me dit que le fichier n'existe pas.... |
Ce qui est vrai puisque le fichier est généré à la volée !!!
Marsh Posté le 11-06-2004 à 08:52:00
pascal34 a écrit : Ce qui est vrai puisque le fichier est généré à la volée !!! |
Umf
mais non, ça marche en fait très bien avec Mozilla, mais pas avec IE.
Le fichier est quand même généré avant d'être ouvert donc il existe.
Marsh Posté le 11-06-2004 à 09:45:40
Bah ouais. c'est pas que ça me gène profondément, mais comme c'est une appli pro et que 95% des gens utilisent IE je préfererai que ça fonctionne sous IE même si ça ne doit pas fonctionner avec mozilla.
Marsh Posté le 11-06-2004 à 10:01:50
Maintenant, tu devrais pouvoir imposer d'avoir IE 5.5 minimum.
Ca merde pour toutes les versions ?
Marsh Posté le 11-06-2004 à 10:15:47
IE 6.0 malheureusement.
Je doute que ce soit mieux avec une version antérieure.
Marsh Posté le 11-06-2004 à 10:38:53
Essaie de faire générer un simple fichier texte (type mime: text/plain je crois) par ta servlet et vois comment se comporte IE
Marsh Posté le 11-06-2004 à 10:44:25
C'est une idée...
je vais essayer.
Marsh Posté le 11-06-2004 à 13:24:19
Personellement j'ai eu me même genre de problème avec IE.
Dans mon cas, on ouvre un fichier pdf généré à la volée dasn une nouvelle fenêtre.
Le souci venait du fait que on passait deux fois dans la fonction qui nous ouvre le fichier et l'affiche. Je suppose que c'etais une fois pour la servelet et une fois pour le fichier en lui même.
On a résolu le pb en ajoutant :
response.setHeader("Cache-Control", "" );
response.setHeader("Pragma", "" );
response.setHeader("Expires", "" );
Depuis plus de pb avec IE, et ca fonctionne toujours correctement avec Mozilla.
J'espere que cela va pouvoir vous aider.
Marsh Posté le 11-06-2004 à 13:45:39
Légère amélioration avec ce code ajouté.
Il m'ouvre toujours deux fenêtre successives, mais si je fais deux fois ouvrir, cette fois ci, le fichier s'ouvre sans encombres.
Donc merci beaucoup, plus que le prblème de la double fenêtre à régler (une première avec le nom de la servlet, et une deuxième avec le nom du fichier).
Marsh Posté le 11-06-2004 à 14:04:31
Personnelement, j'écris directement le fichier dans la variable "response" de cette manière :
response.getOutputStream().write(array);
ou array est un tableau de byte, et response est du type HttpServletResponse.
Maintenant je ne sais absolment pas si ca permet de sauvegarder le fichier ou si ca va l'ouvrir dans le navigateur.
Marsh Posté le 11-06-2004 à 14:06:26
Bysounours a écrit : Personnelement, j'écris directement le fichier dans la variable "response" de cette manière : |
Ok pour ça, je fais à peu près ça.
Mais tu finis ton code comment ? Tu fermes l'outpustream, tu le flush???
Marsh Posté le 10-06-2004 à 11:06:36
Salut,
Pour générer du pdf facilement, j'utilise l'API Itext qui fonctionne plutôt bien. J'ai vu que certains l'avaient utilisée ici, donc peut être pourra t-on me répondre, je ne suis pas sûr d'ailleurs que mon problème soit directement lié à l'utilisation de cette API.
Voici le corps la méthode doPost de la servlet qui doit générer le pdf :
Code trouvé sur le site du créateur de l'API : http://www.lowagie.com/iText/examples/Chap0105.java
Le problème :
- tout d'abord une nouvelle fenêtre du navigateur s'ouvre avec l'URL de la servlet.
- Ensuite boîte de dialogue voulez vous ouvrir/enregistrer le fichier "NomServlet" et nom pas "test.pdf".
Si je clique sur energister, ça marche à peu près, il m'enegistre bien un "test.pdf".
Si je clique sur ouvrir : deuxième boite de dialogue (enfin) voulez vous ouvrir/enregistrer le fichier "test.pdf". Enregistrer passe. Mais ouvrir plante, il me dit que le fichier n'existe pas....
D'où les questions :
1) Comment faire pour ne pas avoir une nouvelle instance de navigateur qui s'ouvre (j'ai mis un target="_blank" dans ma jsp, mais je ne sais pas quoi mettre)
2) Je voudrai directement la bonne fenêtre : voulez vous ouvrir/enregistrer le fichier "test.pdf"
Any Help please ...
_________________
show time !!!
Message édité par The Flint le 10-06-2004 à 11:09:08
---------------
Krikazaaak