Page php téléchargement

Jean26843326 Messages postés 130 Statut Membre -  
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   -

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 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 

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 130 Statut Membre 1
 

q

0
Jean26843326 Messages postés 130 Statut Membre 1
 

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 130 Statut Membre 1
 

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

0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758 > Jean26843326 Messages postés 130 Statut Membre
 

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 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758 > Jean26843326 Messages postés 130 Statut Membre
 

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