IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

download fichier : problème de path


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut download fichier : problème de path
    Bonjour,
    d'un coté j'ai un bout de code en phtml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="download/download.php?filename='.$_buildListDirectory.'/'.$buildListFileName.'">Download here</a>';
    ici .$_buildListDirectory.'/'.$buildListFileName. vaut ./monrepertoire/monfichier.txt


    ensuite mon fichier download.php est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header ('Content-Type: application/download');
    header ('Content-disposition: attachment; filename="' .$_GET['filename']. '"');
    Lorsque je clishe sur mon lien "Download here", une boite de dialogue s'ouvre pour enregistrer le fichier.
    Sauf que tous les slash '/' ont été remplacés par des underscore '_'

    Donc je fini par enregistrer le fichier ._monrepertoire_monfichier.txt
    Pourtant la variable $_GET['filename'] contient bien les slash '/'
    Est ce la ligne
    header ('Content-disposition: attachment; filename=
    qui fait la transformation???

    merci pour votre aide

  2. #2
    Membre éclairé Avatar de MTroy_
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut
    Bonjour,

    Avec basename() ça devrait aller mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header ('Content-disposition: attachment; filename="' .basename($_GET['filename']). '"');
    Il n'est pas nécessaire d'indiquer le chemin absolu dans filename.
    C'est à la lecture du fichier que c'est plus judicieux.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut
    merci d'avoir prêté attention à mon post!

    Effectivement si j'utilise basename je n'aurais plus de problème.
    mais je perds l'information sur le path du répertoire contenant mon fichier!! de plus mon path est configurable.

    Mon besoin est d'enregistrer coté client un fichier existant sur le serveur que je viens juste de créer, et mon path est défini dans un fichier de configuration:

    conf.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $db0["directory"]="./directory_1/";
    $db1["directory"]="./directory_2/";
     
    $config = array();
    // List of configurations
    $config["global"] = array(
    "environement1" => $db0, 
    "environement2" => $db1
    );
    peut-être que la méthode que j'utilise pour enregistrer mon fichier coté client n'est pas la bonne, mais c'est la seule que je connaisse....

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut Résolu :)
    je viens de comprendre!
    voici un bout de code qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $full_path=$_GET['filename'];
    $filename = basename($full_path);
    header ('Content-Type: application/download');
    header('Content-Length: '.filesize($full_path));
    header ('Content-disposition: attachment; filename="' .$filename. '"'); 
     
    readfile($full_path);
    exit;

    Il me manquait "juste" la ligne :
    readfile($full_path);



    Merci pour votre aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2013, 19h43
  2. Problème de path pour accéder un fichier
    Par gabdeschenes dans le forum Windows
    Réponses: 5
    Dernier message: 27/07/2010, 22h54
  3. Problème avec download fichier
    Par harry25 dans le forum ASP.NET
    Réponses: 14
    Dernier message: 09/11/2007, 11h48
  4. Problème download fichier depuis action struts
    Par ddams dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/11/2006, 21h35
  5. Réponses: 4
    Dernier message: 18/10/2005, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo