Bonjour à tous
J'ai une fonction qui permet de generer automatiquement une liste de documents pdf sur mon serveur ftp et permettre leur telechargement. J'ai une fichier php qui fait le listing et un autre nommé down.php Quand je clic sur le lien pour télécharger le document, il me propose soit de l'ouvrir soit de le télécharger. Que je choisisse l'un ou l'autre, j'ai une erreur au niveau du fichier téléchargé : celui-ci ne fait pas la bonne taille et pdf reader me dit qu'il s'agit d'un problème d'encodage...
J'ai vérifié sur mon serveur et les fichiers pdf sont bien à la bonne taille. Sauriez-vous me dire comment corriger ce problème? Au pire si quelqu'un peut me dire comment ecrire la fonction pour juste avoir un listing sans appel de la fonction down.
Merci d'avance, je vous mets le code ci-dessous :
<table cellpadding="3" cellspacing="1" align="center" border="1">
<tr>
<th scope="col">Fichiers<br /></th>
<th scope="col">Date de mise en ligne<br />
<th scope="col">Taille du fichier<br /></th>
</tr>
<?php
function listing1($dir)
{
$pdf_files = array();
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
{
if(strtolower(strrchr($filename, '.')) == '.pdf')
$pdf_files[] = $filename;
}
rsort($pdf_files);
$sommepoids = "";
foreach($pdf_files as $pdf_file)
{
$poidsdufichier = round(filesize($dir."/".$pdf_file)/1024,2);
$sommepoids += $poidsdufichier;
echo '<tr>
<td><p align="center"><a href="down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a></p></td>
<td><p align="center">'.date ("d/m/Y", filectime($dir."/".$pdf_file)).'</p></td><td><p align="center">'.round(filesize($dir."/".$pdf_file)/1024,2) .'Ko</p></td>
</tr>';
}
;
}
listing1($path1);
$urlComplete= rawurlencode(str_replace ('/', '', $value));
?>
et pour le fichier down.php
<?
header("Content-type: application/pdf" );
header("Content-Disposition: attachment; filename=$pdf" );
readfile($pdf);
?>