modification d'une fonction php de listing

modification d'une fonction php de listing - PHP - Programmation

Marsh Posté le 09-04-2008 à 13:46:54    

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);  
?>  

Reply

Marsh Posté le 09-04-2008 à 13:46:54   

Reply

Marsh Posté le 09-04-2008 à 13:52:47    

enregistre le pdf généré et ouvre-le avec un éditeur de texte, pour voir.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 13:55:36    

il a y a marqué ceci :
 
Warning: readfile(Redpwd.pdf): failed to open stream: No such file or directory in /home/httpd/vhosts/www.amcan.fr/web/DocTechTab/down.php on line 4

Reply

Marsh Posté le 09-04-2008 à 13:57:17    

bah voilà, tu as ton erreur.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 14:00:38    

OUI merci :).....
 
Mais pour la corriger, tu as une idée?

Reply

Marsh Posté le 09-04-2008 à 14:04:43    

ben oui...lui demander de lire un fichier qui existe.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 14:09:38    

Je viens de verifier sur le serveur et le fichier existe bien...Est ce que tu vois une erreur dans le code du fichier down ? Ou une facon d'eliminer l'appel de fichier dans la fonction listing...pour avoir juste un listing simple sans forcement tout ca :
 
 <td><p align="center"><a href="down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a></p></td>  

Reply

Marsh Posté le 09-04-2008 à 14:14:39    

Ton fichier Redpwd.pdf est dans le répertoire /home/httpd/vhosts/www.amcan.fr/web/DocTechTab/ ? :o


Message édité par skeye le 09-04-2008 à 14:14:44

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 14:18:46    

non dans /home/httpd/vhosts/www.amcan.fr/web/DocTechTab/COA
 
je dois modifier quelque chose?

Reply

Marsh Posté le 09-04-2008 à 14:20:04    

comment je peux modifier la fonction listing pour juste avoir un listing?
En fait l'appel a down.php ne m'interesse pas.....

Reply

Marsh Posté le 09-04-2008 à 14:20:04   

Reply

Marsh Posté le 09-04-2008 à 14:22:59    

jonatMal a écrit :

non dans /home/httpd/vhosts/www.amcan.fr/web/DocTechTab/COA
 
je dois modifier quelque chose?


 
Bah oui. Tu dois donner à ton script le bon chemin.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 14:28:28    

ca m'aide pas beaucoup comme réponse....Si j'ai posté ce sujet, c'est parce que je n'y arrive pas tout seul..... :)

Reply

Marsh Posté le 09-04-2008 à 14:37:04    

Bah c'est simple, d'après l'erreur tu lui donnes juste le nom du fichier. Il faut lui donner un chemin valide à-partir du script.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-04-2008 à 15:09:25    

l'erreur est par là:

Code :
  1. echo '<tr>
  2.  <td>
  3.    <p align="center">
  4.      <a href="down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a>
  5.    </p>
  6.  </td>
  7.  ...';


$pdf_file ne contient pas le chemin pour le fichier.

 

note : je ne donne pas la soluce pour ne pas gacher l'effort pédagogique mis en place par skeye :o


Message édité par anapajari le 09-04-2008 à 15:10:43

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed