Telecharger en php

Bonjour,
jai un probleme en php je v telecharger des fichiers qui sont ajoutés dans un dossier de format pdf
c ce que j ai fait dans test.php
<form action="telecharger.php" method="post">
<select name="nom_fichier"><option></option>
<?PHP
$req=mysql_query("SELECT * from test ");
while($res=mysql_fetch_array($req)){
echo "<option value='".$res["nom_fichier"]."'>".$res["nom_fichier"]." </option>";
}
?>
</select>
nom fichier
<a href="telecharger.php?Fichier_a_telecharger=monfichier.txt&chemin=test/">Télécharger</a>
</form>

et dans le fichier telecharger.php

<?php
$filename="fichier/".$varFICHIER.".pdf";

$filedir = "http://domain.com/fichier/".$filename;

header("Content-type: application/force-download" );
header("Content-Disposition: attachment; filename=$filename" );
readfile("$filedir" );
?>

je ne sais ou est le probleme ?????????
Configuration: Windows XP Internet Explorer 7.0

7 réponses

  1. bonjour,

    pourquoi n'utilisez-vous pas
    <input type='file' ...>
    et
    move_uploaded_file

    vous trouverez de plus tout expliqué dans CCM
    1. ou tout simplement le chemin du fichier sur le ftp ? a moins que tu ne souhaite pas laisserla liberté a l'utilisateur de pouvoir naviguer dans l'arborescence du ftp
      1. slt merci pour la reponse c entil de ta part maiis je n arrive pas a comprendre comment utiliser <input type="file"
        1. Bonjour,
          ce type d'input (à mettre dans un formulaire) permet de sélectionner un fichier à télécharger sur son espace (celui du site)
          sélection => input
          téléchargement move_upload.

          avec une recherche sur les mots doinnés on trouve plus d'info là
          https://php.developpez.com/faq/?page=fichiers#fichiers_forcedownload
          1. slt merci pour vos reponces ^^ voila ce que j ai jai fait pour telecharger un fichier mais je veux laisser le choix pour l utilisateur de choisir le fichier qu il veut telecharger slp aider moi

            en html:

            <form action="test2.php" method="post" enctype="multipart/form-data">
            <input type="file" name="fichier" />
            <input type="submit" value="Uploader" />
            </form>

            en php:

            <?php
            $full_path = 'C:\wamp\www\haj\fichier\Chap3.pdf'; // chemin système (local) vers le fichier
            $file_name = basename($full_path);

            ini_set('zlib.output_compression', 0);
            $date = gmdate(DATE_RFC1123);

            header('Pragma: public');
            header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');

            header('Content-Tranfer-Encoding: none');
            header('Content-Length: '.filesize($full_path));
            header('Content-MD5: '.base64_encode(md5_file($full_path)));
            header('Content-Type: application/octetstream; name="'.$file_name.'"');
            header('Content-Disposition: attachment; filename="'.$file_name.'"');

            header('Date: '.$date);
            header('Expires: '.gmdate(DATE_RFC1123, time()+1));
            header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($full_path)));

            readfile($full_path);
            exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu

            ?>
        2. bonjour,
          attention ce que nouas avon sfait là télécharge un fichier du PC utilisateur vers le serveur.
          c'est peut être l'inverse que vous désirez faire.

          Précsions demandées.
          1. bsr:
            j ai donnée le droit a tout les utilisateurs pour ajouter des fichiers PDF qui vont etre enregistrer dans le dossier "fichier" donc comment faire pour telecharger le fichier choisie par l utilisateur ????????????????
            1. Bonsoir,
              il suffit d'afficher la liste des fichiers pdf avec un lien.
              un clic sur le lien proposera l'ouverture ou l'enregistrement du fichier.

              <?php /:liste fichier pdf
              $dir = le chemin où sont enregistrés les fichiers
              while ($f = readdir($dir)) {
              if(is_file($rep.$f)) {
              if (substr($f,-3)=='pdf') {
              echo "<a href="$f.">".$f."</a><br>";
              }
              }
              ?>