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 :

Pb affichage reponse PDF


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut Pb affichage reponse PDF
    Bonjour
    J'ai céé un fichier pdf enregistré sous /tmp/planning.pdf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Pool_Edition_PDF {
      private static final String BASE_DIRECTORY = "/tmp";
     
       public static void main(...
       ....
       file = new File(BASE_DIRECTORY+"/planning.pdf");
       ....
       session.setAttribute("lien1", BASE_DIRECTORY+"/planning.pdf");
    }
    }
    le fichier est bien stcké dans le rep tmp
    pour la réponse j'ai écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {if(ch.equals("2302"))
    	//affichage d'un PDF
    	{urlMain = session.getAttribute("lien1").toString();
    	 response.sendRedirect(urlMain);}
    mais le pb c'est que l'erreur 404 m'est retournée:La ressource demandée (/tmp/planning.pdf) n'est pas disponible.


    Où est le pb?
    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Tu ne peux pas spécifier une arborescence en dehors de la partie Web.

    Alors tu as deux possibilités :

    1) copier le PDF dans la partie Web.

    2) injecter le contenu du fichier dans le HttpServletResponse :

    - lire le fichier PDF en Java (par exemple dans un byte[] s'il n'est pas trop volumineux),
    - spécifier le type de réponse (ça doit ressemble à ça) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "attachment; filename=monFichier.pdf");
    - écrire le contenu du fichier (byte[]) dans l'HttpServletResponse

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Donc suivant vos directives j'ai écris ceci mais les pages sont vides:
    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
     
    if(ch.equals("2302"))
    	//affichage d'un PDF
    	{urlMain = session.getAttribute("lien1").toString();
    	String fichier = "planning.pdf";  //request.getParameter("fichier");
    	response.setContentType ("application/pdf");
    	response.setHeader ("Content-Disposition", "attachment; filename=\""+fichier+"\"");
    	java.io.PrintWriter out = response.getWriter();
    	try
    		{InputStream ips=new FileInputStream("/tmp/Pool.pdf");
    		InputStreamReader ipsr=new InputStreamReader(ips);
    		BufferedReader br=new BufferedReader(ipsr);
    		String ligne="";
    		while ((ligne=br.readLine())!=null)
    			{out.println(ligne);}
    	}catch (Exception e){e.printStackTrace();}
    je pense que ça vient de la variable string qui ne convient pas.
    Vous en pensez quoi?
    merci

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    as-tu des exceptions qui sont déclenchées?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Non pas d'exceptions
    Le PDF fait 24K et comporte 3 pages

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    en fait, il faut lire le pdf en binaire et non en flux String.
    un truc comme ça devrait fonctionner :
    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
    String fichier = "planning.pdf"; // request.getParameter("fichier");
    response.setContentType ("application/pdf");
    response.setHeader ("Content-Disposition", "attachment; filename=\""+fichier+"\"");
    OutputStream os = response.getOutputStream();
    try {
    	InputStream ips = new FileInputStream("/tmp/Pool.pdf");
    	InputStreamReader ipsr = new InputStreamReader(ips);
     
    	byte buffer[] = new byte[512 * 1024];
    	int nbLecture;
    	while ((nbLecture = ips.read(buffer)) != -1) {
    		os.write(buffer, 0, nbLecture);
    	}
     
    } catch (Exception e) {
    	e.printStackTrace();
    } finally {
    	try {
    		os.close();
    	} catch (Exception e) {
    	}
    }

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

Discussions similaires

  1. [PHP 5.2] affichage de pdf (ou liste d'un repertoire) situé sur un autre server
    Par livinho38 dans le forum Langage
    Réponses: 1
    Dernier message: 07/05/2009, 12h00
  2. Qualité des images à l'affichage du PDF
    Par papal02 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 08/06/2008, 15h36
  3. Affichage document PDF ou autre avec FORMS
    Par JeffHam dans le forum Forms
    Réponses: 2
    Dernier message: 19/09/2007, 22h53
  4. Affichage de PDF en JSP
    Par faressam dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/06/2007, 20h37
  5. Affichage fichier pdf
    Par yousfi.z dans le forum Documents
    Réponses: 4
    Dernier message: 29/05/2007, 10h26

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