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

Langage PHP Discussion :

Affichage PDF bug la première fois.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut Affichage PDF bug la première fois.
    Bonjour,

    J'ai un bug dans mon application, que je ne comprends pas.

    Dans mon application j'ai un lien, qui une fois cliqué, affiche un PDF dans le navigateur.

    Malheureusement, la première fois, le PDF ne s'affiche pas, toutes les autres fois, ça fonctionne correctement.

    En faisant un debugbreak, que ce soit la première ou la Nième fois, le contenu est bon.

    Voici le code en question :

    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
     
    protected function headerPDF()
        {		
    		header('Content-type: application/pdf');
    		header('Content-Disposition: inline; filename="downloaded.pdf"');
    		header('Content-Transfer-Encoding: binary');
    		header('Accept-Ranges: bytes');
        }
     
        public function pdfAction($fichier, $polNum)
        {		
    		$this->view->disable();
     
        	$config = $this->getDi()->get('config');
     
        	$lien = $config->application->fichiersDir . "DispoGene/" . $fichier . '.pdf';
        	if (file_exists($lien)) //cette partie pose problème
        	{
        		$this->headerPDF();
    			header('Content-Length: ' . filesize($lien));
    			$content = file_get_contents($lien);
    			//DebugBreak("1@10.50.1.27;d=1,p=0");
    			//readfile($lien);
    			echo $content;
    		}
    		else
    		{
    			$pdf = new \Models\Societaire\PDF();
    			$pdf->getPDF($polNum, $fichier);
    			$result = $pdf->toArray();
    			if ($result->codeInfo == '0')
    			{
    				$this->headerPDF();
    				echo $result->opmp_doc;
    			}
    			else
    			{
    				echo "<script>window.close();</script>";
    			}
    		}
        }

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Bonjour,

    Il se peut que votre code php envoie des headers différents la première fois, il faut savoir que quand on utilise les fonctions header() il ne faut pas que quelque chose ait déjà été affiché sur la page car sinon ça ne fonctionne pas.

    Avez-vous des messages d'erreur ?

    A+

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Normalement, rien d'autre est envoyé a la vue étant donné que c'est a la fin de la fonction pdfAction que le rendu est fait. (Modèle MVC, framework Phalcon)

    Je n'ai aucun message d'erreur, juste un page de visualisation de pdf vide.

    Quand je ferme la fenêtre puis reclique sur le lien, le pdf s'affiche correctement et jusqu'à ce que je ferme le navigateur.

    Problème de cache ?

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Est-ce qu'il y a un appel explicite à la fonction flush() ?

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Non, il n'y a pas d'appel.

    Après c'est un framework écrit en C, et quand on regarde le code, il y a un ob_get_contents(), au moment du $this-view-disable().

Discussions similaires

  1. [XSL-FO]Problème d'affichage pdf
    Par abdallah2007 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/05/2007, 10h07
  2. Affichage pdf dans une autre page
    Par raiarii dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 07/09/2006, 13h51
  3. [C++][SOCKET]recv() bloque la première fois
    Par xwindoo dans le forum Développement
    Réponses: 15
    Dernier message: 18/08/2006, 20h57
  4. Réponses: 4
    Dernier message: 04/10/2005, 10h47

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