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. 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>";
    }
    }
    ?>
    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. 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. 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. slt merci pour la reponse c entil de ta part maiis je n arrive pas a comprendre comment utiliser <input type="file"
          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. bonjour,

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

              vous trouverez de plus tout expliqué dans CCM