Web : Envoyer un document non HTML - Java - Programmation
Marsh Posté le 24-02-2004 à 18:05:18
Pour ce genre de besoin, fait une servlet plutot qu'une JSP.
Tu écris directement dans le flux de la réponse.
Et utilise le OutputStream plutot que le Writer ...
Pour mettre le bon contentType, tu te sers de la methode response.setContentType().
Marsh Posté le 24-02-2004 à 18:48:56
merci
Marsh Posté le 24-02-2004 à 20:34:24
ReplyMarsh Posté le 25-02-2004 à 15:57:47
J'ai une autre question à propos du content-type.
Y'a t-il une méthode simple et fiable en Java 1.3 de déterminer le content-type d'un fichier.
Pour le moment, on utilise le content-type fournis pas le client, mais j'aime pas trop ça, même si ce n'est utilisé que dans l'interface d'admin.
Les miroirs : 4111 !
Marsh Posté le 25-02-2004 à 16:08:50
ben tu peux pas ... le content type c'est justement pour donner la nature d'un fichier binaire...
Il y a des "mappings" habituels en fonction de l'extension du fichier ( htm --> text/html, gif --> image/gif, etc ...)
Donc c'est pas vraiment un problème java mais plutot un problème de convention et de configuration ...
Dans un environnement servlet, tu peux utiliser les mapping extension<-->contentType décris dans le fichier de déploiement (ca fait partit de la spécification servlet) en utilisant la méthode ServletContext.getMimeType().
Mais bon, pour que ca marche il faut que tu aies l'extension du fichier ... je sais pas si dans ton cas tu l'as ...
Marsh Posté le 25-02-2004 à 16:12:46
Mara's dad a écrit : |
c'est ton tel ? je te trouve pas dans l'annuaire à ce numéro
Marsh Posté le 25-02-2004 à 16:29:52
benou a écrit : |
T'as un annuaire trop vieux !
Akitel II version 1.0 Base version :09/01/2004.
Sinon, pour le content-type, il me semble que des gens ont développé des bases de signatures qui permettent de déterminer le content-type à partir du contenu au lieu de la simple extention du fichier.
Genre ce que Joce à du faire pour ne pas prendre un .gif qui en fait contient un fichier flash...
Marsh Posté le 25-02-2004 à 16:37:35
Mara's dad a écrit : |
ouais
j'ai pu mon mot de passe source pour pouvoir télécharger la nouvelle version
edit : 22/10/2001
Mara's dad a écrit : |
ca ca peut marcher pour quelques fichiers : dans le cas du GIF, y a un header : les 3 premier caracteres sont GIF.
Mais bon, en plus d'être extremement peu performant (ouvrir le fichier, tester les headers des formats de fichiers les plus connus), y a des format de fichiers pour lesquels ca marche pas. ex : un fichier texte
Marsh Posté le 25-02-2004 à 18:55:52
Mara's dad a écrit : |
oui enfin joce à pris le machin de php qui fait ça tout seul
sinon oui j'allais dire qu'il existait peut etre une lib pour faire ça en java... mais bon c ptet un peu lourd pour pas gd chose... va voir du coté de ce que t'as dit benou.
(sinon je suis aussi passé par le "matter les 4 premiers bytes et si c'est escape-P-N-G c'est bon )
Marsh Posté le 26-02-2004 à 11:28:38
J'ai cherché un lib qui ferait ça et j'ai pas trouvé.
Je ne vois pas trop pourquoi ce serait si lourd.
La lib qui gère le file upload, il n'est pas obligé "d'ouvrir", le fichier, les octets il les voit passer sous son nez.
M'enfin, je suis quand même pas le seul à avoir ce genre de besoin !
Et même si c'est lourd, c'est un traitement qui n'est fait que dans le cardre d'un upload de fichier. C'est à dire sur une opération assez rare par rapport au trafic général d'un site. Mais c'est tellement sensible qu'il me semble important qu'on s'y attarde un peu non ?
Je suis le seul parano içi ou quoi
En fait pour alléger le truc, il suffit de valider le content-type fourni, c'est à dire de faire un test "simple". Il ne s'agit pas de déterminer à l'aveugle le type d'un fichier.
Allez, si je ne trouve pas, je lance un nouveau projet, le : ContentTypeValidator !
Marsh Posté le 24-02-2004 à 17:52:49
Hello
Donc, j'ai une page qui propose des documents à l'utilisateur.
Ces documents peuvent être de différents types (text, word, pdf...).
Je connais bien sûr le content-type de mes documents.
Le problème, c'est que les documents ne sont pas sur disque, mais dans des blobs ( C'est pas mon choix ).
L'url va donc être un truc du genre:
http://www.monserveur.com/applicat [...] p?docId=27
La question est donc : comment écrire getDocument.jsp pour que le content-type soit celui du document ?
Typiquement, si mon document était du HTML ça se passerait comme ça :
Remarques :
1- Oui, j'y connais rien ou presque en JSP
2- Non, j'ai pas cherché
Mais bon ma question est tellement bien posée que ça mérite une réponse non ?
---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.