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:
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:
1 2
|
ERREUR n°6 : Impossible de charger l'image /lib/redactor/img/d16dc6d9a4d65bb736accfe30d91df26.jpg |
voici le script file_upload.php
Code:
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:
1 2
|
'filelink' => '/lib/redactor/img/'.$filename |
par
Code:
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:
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:
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 :)