Page php téléchargement

Jean26843326 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 116 Date d'inscription   Statut Membre Dernière intervention   1
 

q

0
Jean26843326 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   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 116 Date d'inscription   Statut Membre Dernière intervention   1
 

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

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Jean26843326 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention  
 

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

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