Page php téléchargement

Jean26843326 Messages postés 112 Date d'inscription jeudi 3 août 2023 Statut Membre Dernière intervention 2 avril 2024 - 29 oct. 2023 à 23:53
yg_be Messages postés 22696 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 2 déc. 2023 à 13:44

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

A voir également:

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
30 oct. 2023 à 06:19

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
Jean26843326 Messages postés 112 Date d'inscription jeudi 3 août 2023 Statut Membre Dernière intervention 2 avril 2024 1
30 oct. 2023 à 10:36

q

0
Jean26843326 Messages postés 112 Date d'inscription jeudi 3 août 2023 Statut Membre Dernière intervention 2 avril 2024 1
30 oct. 2023 à 10:36

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

0
Jean26843326 Messages postés 112 Date d'inscription jeudi 3 août 2023 Statut Membre Dernière intervention 2 avril 2024 1
30 oct. 2023 à 10:38

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

0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Jean26843326 Messages postés 112 Date d'inscription jeudi 3 août 2023 Statut Membre Dernière intervention 2 avril 2024
30 oct. 2023 à 11:07

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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Jean26843326 Messages postés 112 Date d'inscription jeudi 3 août 2023 Statut Membre Dernière intervention 2 avril 2024
30 oct. 2023 à 12:29

As tu vu que .... le chemin qui "fonctionne"  dans ton nouveau script n'est pas celui que tu avais mis dans ton précédent code ??

Tu es passé de :  '../../fichier/upload/';  

à  '../../fichier/' 

Je maintiens que ton souci vient avant tout du CHEMIN vers le fichier ....

Mais comme tu ne réponds pas à mes questions... je ne peux pas te venir en aide !

PS: pour poster ton code, il faut utiliser l'icone prévue à cet effet dans la barre en haut du message ( celle qui contient <> ) 

1