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
404 Not found The requested URL was not found on this server.
("Le fichier existe-il?" "Oui" "Télécharge le" "Il n'existe pas!")

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