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 :

téléchargement fichier hors DOCUMENT_ROOT(via appel ajax)


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut téléchargement fichier hors DOCUMENT_ROOT(via appel ajax)
    Bonjour,

    Je ne parviens pas à lancer le téléchargement des fichiers que je demande via un appel Ajax. Ces fichiers sont HORS du document_root.
    Mon script PHP renvoi les bons headers d'apache (visibles dans firebug) seulement aucune fenêtre proposant l'enregistrement (donc le téléchargement) du fichier ne s'ouvre. Je constate l'affichage du code binaire du fichier dans Firebug ce qui, je pense, ne devrait pas être normalement.
    Il me semble pourtant que j'ai déjà pu faire cela, même avec des fichiers se trouvant en dehors du root.

    Voici le code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    header("Pragma: no-cache"); 
    header("Expires: 0");
    header("Cache-Control: private",false);
    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=\"".$file->getName().".".$file->getExtension()."\";");
    header("Content-Transfer-Encoding: ".$type);
    header("Content-Length: ".filesize($file->getPathFile()));		 
    readfile($file->getPathFile());
    exit;
    Un coup de main?

    Merci
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  2. #2
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Voici les entêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Date	Tue, 02 Jun 2009 07:59:14 GMT
    Server Apache/2.2.3 (Debian) PHP/5.2.9-0.dotdeb.1 with Suhosin-Patch
    X-Powered-By	PHP/5.2.9-0.dotdeb.1
    Expires 0
    Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma	no-cache
    content-disposition attachment; filename="test upload stal.zip";
    Content-Transfer-Encoding	multipart/x-zip
    Content-Length	189174
    Keep-Alive	timeout=15, max=90 
    Connection	Keep-Alive 
    Content-Type	application/force-download
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  3. #3
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  4. #4
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Heu en fait, même si ça marche, ça ne me convient pas exactement comme solution.
    Je m'explique : Dans le cas où le fichier n'existe pas, au lieu d'avoir une boite de dialogue permettant d'enregistrer le fichier, je me trouve rediriger (form.submit()) sur le script de téléchargement avec l'affichage de l'erreur que j'ai levée. Je souhaiterais que l'intégralité du processus de téléchargement soit géré via Ajax mais je ne parviens pas à le faire. Comme solution alternative je pense aux iframes (tel que les utilisent Google à tout-va)...

    Une idée ?
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/01/2015, 12h51
  2. [2.x] Session qui ne persiste pas via appels AJAX
    Par hebus44 dans le forum Symfony
    Réponses: 6
    Dernier message: 13/06/2013, 14h37
  3. [PHP 5.3] Téléchargement fichier via header()
    Par -The_Reaper- dans le forum Langage
    Réponses: 2
    Dernier message: 02/09/2011, 16h54
  4. Réponses: 2
    Dernier message: 07/08/2011, 11h51
  5. Réponses: 7
    Dernier message: 08/04/2010, 16h10

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