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
lorsque je clique sur "enregistrer", je crée directement un PDF, lorsque je tape du texte
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%}
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
voici le script file_upload.php
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
si je change cette ligne:
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)); } ?>
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'filelink' => '/lib/redactor/img/'.$filename
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
j'avais penser que lorsque j'appelle cette methode
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'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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public function newPDFAction($html) {
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![]()
Partager