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

Symfony PHP Discussion :

Problème de lien pour récupérer le PDF ? [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut Problème de lien pour récupérer le PDF ?
    Bonjour

    Je suis confronté à un problème que je n'arrive pas à résoudre.

    j'ai un formulaire qui intègre une éditeur de texte.
    voici ma vu
    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
     
    <script type="text/javascript"> 
           $(document).ready(
                   function()
                   {
                           $('#form_text').redactor({ 	
                                   imageUpload: "/lib/redactor/demo/scripts/image_upload.php",
                                   fileUpload: '/lib/redactor/demo/scripts/file_upload.php',
                                   imageGetJson: '/lib/redactor/demo/json/data.json'
     
                           });
                   }
           );     
        </script>
     
     
        <form id="redactor" action="{{path('edit_text')}}" method="post">
        {{ form_label(form.text, "Titre de l'article") }}
     
        <!-- Affichage des erreurs pour ce champ précis. -->
        {{ form_errors(form.text) }}
     
        <!-- Génération de l'input. -->
        {{ form_widget(form.text) }}
        {{ form_rest(form) }}
            <input type="submit" value="enregistrer" />  
        </form>
    {% endblock%}
    lorsque je clique sur "enregistrer", je crée directement un PDF, lorsque je tape du texte
    dans l'editeur "redactor" pas de problème, mon PDF est créer correctement

    ça coince lorsque j'upload une image.
    j'ai bien une image qui appraît dans la zone d'edtion, mais une fois que je clique sur enregistrer
    j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERREUR n°6 : Impossible de charger l'image /lib/redactor/img/d16dc6d9a4d65bb736accfe30d91df26.jpg
    voici le script file_upload.php
    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
     
    <?php
     
    // This is a simplified example, which doesn't cover security of uploaded images. 
    // This example just demonstrate the logic behind the process. 
     
     
    // files storage folder
    $dir = "../../img/";
     
    $_FILES['file']['type'] = strtolower($_FILES['file']['type']);
     
    if ($_FILES['file']['type'] == 'image/png' 
    || $_FILES['file']['type'] == 'image/jpg' 
    || $_FILES['file']['type'] == 'image/gif' 
    || $_FILES['file']['type'] == 'image/jpeg'
    || $_FILES['file']['type'] == 'image/pjpeg')
    {	
        // setting file's mysterious name
        $filename = md5(date('YmdHis')).'.jpg';
        $file = $dir.$filename;
     
        // copying
        copy($_FILES['file']['tmp_name'], $file);
     
        // displaying file    
    	$array = array(
    		'filelink' => '/lib/redactor/img/'.$filename
    	);
     
    	echo stripslashes(json_encode($array));   
     
    }
     
    ?>
    si je change cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		'filelink' => '/lib/redactor/img/'.$filename
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		'filelink' => './lib/redactor/img/'.$filename //ajouter un . avant le slash

    mon document PDF fonctionne avec mon image, mais le problème c'est que maintenant
    dans l'éditeur de texte redactor, je ne vois plus l'image, car le point que j'ai ajouter fait que l'image est introuvable.

    voici ce que je fait dans mon controlleur une fois que je test le POST
    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
     
           $request = $this->get('request');
     
            // On vérifie qu'elle est de type « POST ».
            if ($request->getMethod() == 'POST') {
     
                print_r($request->get('form'));
                // On fait le lien Requête <-> Formulaire.
                $form->bindRequest($request);
                //$text =  $article->getText();
                // On vérifie que les valeurs rentrées sont correctes.
                // (Nous verrons la validation des objets en détail plus bas dans ce chapitre.)
                //  if ($form->isValid()) {
                // On l'enregistre notre objet $article dans la base de données.
                $em = $this->getDoctrine()->getEntityManager();
                $em->persist($article);
                $em->flush();
                $this->newPDFAction($article->getText());
                // }
            }
            public function newPDFAction($html) {
     
            $html2pdf = new \Html2Pdf_Html2Pdf('P', 'A4', 'fr');
            $html2pdf->pdf->SetDisplayMode('real');
            $html2pdf->writeHTML($html);
            $html2pdf->Output('my-document-name.pdf');
     
            $response = new Response();
            $response->clearHttpHeaders();
            $response->setContent(file_get_contents($fichier));
            $response->headers->set('Content-Type', 'application/force-download');
            $response->headers->set('Content-disposition', 'filename=' . $html2pdf);
     
       ///     return $this->render('keokodPDFBundle:Default:index.html.twig', array('PDF' => $response));
        }
    j'avais penser que lorsque j'appelle cette methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            public function newPDFAction($html) {
    j'analyse $html , je recherche tout les liens images et j'ajoute un point sur chacune des lignes, mais je trouve que c'est pas propre de faire cela.

    J'espère avoir expliquer au mieux mon problème.
    Si vous avez une idée, je vous remercie d'avance de la réponse

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    c'est bon j'ai trouvé il faut viré le slash

    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
     
            protected function _tag_open_IMG($param)
            {
     
                $src    = str_replace('&amp;', '&', $param['src']);
     
     
          $src = substr($src, 1);<-- on vire le slash qui nous gene
                $this->parsingCss->save();
                $this->parsingCss->value['width']    = 0;
                $this->parsingCss->value['height']    = 0;
                $this->parsingCss->value['border']    = array('type' => 'none', 'width' => 0, 'color' => array(0, 0, 0));
                $this->parsingCss->value['background'] = array('color' => null, 'image' => null, 'position' => null, 'repeat' => null);
                $this->parsingCss->analyse('img', $param);
                $this->parsingCss->setPosition();
                $this->parsingCss->fontSet();
     
                $res = $this->_drawImage($src, isset($param['sub_li']));
                if (!$res) return $res;
     
                $this->parsingCss->load();
                $this->parsingCss->fontSet();
                $this->_maxE++;
     
                return true;
            }

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

Discussions similaires

  1. lien pour imprimer en pdf
    Par trago dans le forum IHM
    Réponses: 1
    Dernier message: 28/11/2009, 17h02
  2. [Beamer] Problème de thème pour afficher le pdf
    Par D.Mounir dans le forum Beamer
    Réponses: 5
    Dernier message: 27/08/2007, 15h51
  3. Réponses: 2
    Dernier message: 20/03/2007, 13h39
  4. problème avec strtok pour récupérer les vides
    Par manikou dans le forum MFC
    Réponses: 4
    Dernier message: 02/06/2005, 20h08

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