IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP] Affichage de fichiers...


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nikalkal
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 231
    Par défaut [JSP] Affichage de fichiers...
    Bonjour, je réalise une appli qui tourne avec tomcat et dans une jsp j'aimerais ouvrir un fichier (pdf ou doc etc...)

    J'aimerais savoir comment faut-il faire pour envoyer le flux du fichier aux clients et comment le navigateur peut-il l'ouvrir en fonction du type de fichier.

    Mreci d'avance @+



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 43
    Par défaut
    En fait, si tu regardes bien la liste des topics récents, j'ai le même problème que toi.
    Moi, j'ai opté pour une servlet qui lit le fichier sur le disque et qui l'écrit sur le flux de sortie de celle-ci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException 
    {
    	File fileDoc = new File(... chemin vers le fichier ...);	
    	// Copie du fichier sur le flux de sortie de la servlet
    	FileInputStream fis = new FileInputStream(fileDoc);
     
    	long lDocLength = fileDoc.length();
    	response.setContentLength((int)lDocLength);
       response.setContentType("plain/text");
    	response.setHeader("Content-disposition", "inline; filename=" + strDocName);
     
    	BufferedInputStream bis = new BufferedInputStream(fis);
    	BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
    	for(long i=0;i<lDocLength;i++) 
    	{
               bos.write(bis.read());
    	}
     
    	bos.flush();
       bos.close();
       bis.close();
    }
    Pour que le navigateur ouvre la bonne appli en fonction du fichier reçu, il faut préciser le bon ContentType.
    Par exemple, pour un pdf, il faut mettre "application/pdf", pour un doc, "application/msword".

    Tu peux trouver sur le net une liste exhaustive des mapping extensions/content type.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP] liste de fichiers dans une appli web
    Par cyrso dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/01/2005, 17h17
  2. [SERVLET][JSP] Ecriture de fichier par la servlet
    Par Jabwoo dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/07/2004, 17h57
  3. [JSP] Recopier le résultat d'une JSP dans un fichier
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 29/09/2003, 15h10
  4. [JSP] Affichage numéro de ligne d'une exception
    Par PhoneKilleR dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 23/09/2003, 14h59
  5. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo