Bonjour,
Je cherche à afficher un fichier PDF depuis une variable chaine.
voici le code du template (consultationSuccess.php)
Le code de l'action
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php echo $v_Pdf; ?>
Le code pour récupérer le PDF
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function executeConsultation(sfWebRequest $request) { $this->v_IdDoc = $request->getParameter('IdDocument'); $this->o_Document = new Document(); $this->v_Pdf = $this->o_Document->recupere_Document($this->v_IdDoc); $this->setLayout(false); $this->getResponse()->setContentType('application/pdf'); }
Dans mon navigateur (firefox 4 sous windows xp), je lance l'url http://localhost:8059/frontend_dev.php/document/consultation/IdDocument/11, j'ai une page blanche, avec comme titre "11 (Objet application/pdf)" (11 étant l'identifiant passé en paramètre, donc l'id du document pdf dans ma base de données) et un message d'erreur provenant de Adobe Reader :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public function recupere_Document($p_IdDocument) { //On récupère la requête $v_Sql = $this->REQ_Document($p_IdDocument); //On lance la requête $v_Retour = $this->lance_Requete($v_Sql); //On vérifie que la requête s'est bien executée if($v_Retour) { //si oui //debug("requête ok"); //On vérifie qu'on a trouvé le document if($this->NbEnr>0) { //debug("document trouvé"); //On récupère le Pdf $v_Pdf = $this->Data[0]["image"]; //"image" est le nom du champ dans la requête !! } else { //debug("Le document n'a pas été trouvé dans la base de données."); $v_Pdf = ""; } //On libère la requête $this->libere_Requete(); } else { //si non //debug("Problème dans la requête => recupere_Document"); $v_Pdf = ""; } return $v_Pdf; }
J'ai vérifié le déroulement de mon code (pour la méthode recupere_Document) la variable retournée ($v_Pdf) est bien remplie avec le contenu du fichier Pdf.Le fichier ne commence pas par '%PDF-'
Local/EWH
Je ne comprends pas d'où vient l'erreur...
J'ai fait plusieurs autres tests :
1) Je me suis dit que cela provenait du fait que je lançais l'exécution à partir de frontend_dev.php car il y a tous les codes correspondants aux débogages, j'ai donc testé en lançant la même URL mais avec index.php. Cela me donne une page blanche, sans titre et sans message d'erreur.
2) J'ai essayé de mettre un echo $this->v_Pdf directement dans le code de l'action, même si je sais que ce n'est pas correct, c'était surtout pour tester que ma variable était bien remplie et là mon fichier Pdf s'affiche normalement. Mais bon, il me semble que tous les echo/print doivent se trouver dans le fichier template, et non dans l'action !!
Est-ce que quelqu'un peut m'aider ?
Merci d'avance !
Partager