Page php téléchargement

Bonjour, je voudrais créer un php pour télésarger des fichier par son url comme index.php?ex.zip  j'ai  trouver ce code mais sa marche pas           

<?php
// Chemin vers le répertoire où sont stockés les fichiers
$repertoire = '../../fichier/upload/';

// Vérifier si le nom du fichier est spécifié dans l'URL
if (isset($_GET) && count($_GET) === 1) {
    $nomFichier = key($_GET); // Récupérer le nom du fichier depuis l'URL
    $chemin_fichier = $repertoire . $nomFichier;

    // Vérifier si le fichier existe dans le répertoire
    if (file_exists($chemin_fichier)) {
        // Définir les en-têtes pour le téléchargement du fichier
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="' . basename($chemin_fichier) . '"');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($chemin_fichier));

        // Lire le fichier et le transmettre au navigateur en morceaux
        readfile($chemin_fichier);

        exit;
    } else {
        echo 'Le fichier demandé n\'existe pas.';
    }
} else {
    echo 'Paramètre de nom de fichier manquant dans l\'URL ou URL incorrecte.';
}
?>
 


Windows / Edge 118.0.2088.76

1 réponse

  1. Modérateur

    Bonjour

    Ca ne marche pas.. c'est à dire ?

    Tu as in message d'erreur ?

    Tu es sûr du chemin vers le fichier sur ton serveur ?

    Tu héberges ton site sur un serveur web ou tu bosses en local sur ton ordi pour l'instant ?

    Ton répertoire download se trouve où par rapport à ton fichier index.php ?


    0
    1. q

      0
    2. il me dit Le fichier demandé n'existe pas.  avec le lien   et j'utilise nginx avec php et les deux fonctionne.

      0
    3. /php/centre-telechargement/index.php?programme.zip

      0
    4. Modérateur
      @Jean26843326

      oui et ?

      Ton fichier zip se trouve Où par rapport à la racine de ton site ?

      Ton fichier index se trouve où par rapport à la racine de ton site ?

      Au passage, essaye de modifier les deux lignes

        $nomFichier = key($_GET); // Récupérer le nom du fichier depuis l'URL
          $chemin_fichier = $repertoire . $nomFichier;

      par :

        $nomFichier = trim(key($_GET)); // Récupérer le nom du fichier depuis l'URL
        $chemin_fichier = __DIR__ . $repertoire . $nomFichier;
      
        //juste le temps d'un test pour voir ce que ça t'affiche 
        // et controler que le chemin indiqué est bon
         echo "<br> chemin_fichier : " . $chemin_fichier; 
         exit; 
        //--------------------------------------------------//
      0
    5. @jordane45

      je crois quille va pas dans les 2 dossier inferieur  

      chemin_fichier : C:\------serveur------\serveur-nginx\nginx-1.24.0\systeme\php\centre-telechargement../../fichier/upload/VirusInfo_zipLe fichier demandé n'existe pas.        

      mais j'ai utiliser ../../ pour allez dans les 2 dossier inferieur

      0