Bonjour,
Je suis actuellement en train de finaliser un projet dans le cadre de mon stage mais je butte sur un problème qui me parais bien mystérieux, voici une petite description:
Framework: Zend 1.11.1
Tâche à accomplir: générer automatiquement un contrat de location au format PDF (j'utilise pour cela html2pdf) et le stocker sur le serveur (ça c'est bon )
Reste à faire: donner la possibilité aux utilisateurs de télécharger ce PDF.
Problème: le lien de téléchargement ne s'affiche que si file_exists() renvoie true mais lorsqu'on clique sur le lien on se mange un gros("Le fichier existe-il?" "Oui" "Télécharge le" "Il n'existe pas!")404 Not found The requested URL was not found on this server.
Voici les quelques bouts de code qui sont utilisés:
Pour l'enregistrement du PDF sur le serveur:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $datas['dirName'] = APPLICATION_PATH . '/../public/export/contrat/' . $datas['idBooking']; /*APPLICATION_PATH est un define qui correspond au dossier application du serveur (ex: http://local.monsite.fr/Users/peuwpeuw/Sites/monsite/app/ en local*/ $datas['fileName'] = 'contrat_' . md5(date("Y-m-d H:i:s")) . '.pdf'; $datas['outputMode'] = 'F';
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $html2pdf = new HTML2PDF('P','A4','fr'); $html2pdf->pdf->SetDisplayMode('fullpage'); $html2pdf->WriteHTML($this->_content); if(!is_dir($this->_datas['dirName'])) { mkdir($this->_datas['dirName']); //Creer le dossier ou va être stocker le PDF chmod ($this->_datas['dirName'], 0777); } $filePath = $this->_datas['dirName'] . '/' . $this->_datas['fileName']; $html2pdf->Output($filePath, $this->_datas['outputMode']); /*méthode de html2pdf permettant de sauvegarder le fichier (ici $this->_datas['outputMode'] = "F")*/ chmod ($filePath, 0777);
Et voici le code que j'utilise pour le lien de téléchargement:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $filePath = APPLICATION_PATH . '/../public/export/contrat/' . $v['id_flat_book']; if (is_dir($filePath)): if (($contractDir = opendir($filePath)) != FALSE): $fileName = array(); while ($fileName[] = readdir($contractDir)); if (file_exists($filePath . '/' . $fileName[2])) ?> <td><a href="<?php echo $filePath . '/' . $fileName[2] ?>" ><? echo $v['id_flat_book']/*FIX*/ ?></a></td> <?php endif; endif;
Je n'arrive pas à cerner le problème alors si quelqu'un pouvait me filler un coup de patte je lui en serais reconnaissant
Partager