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

JavaScript Discussion :

[AJAX] Modifier les header (PHP) avec une requ�te XMLHttpRequest?


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par d�faut [AJAX] Modifier les header (PHP) avec une requ�te XMLHttpRequest?
    Bonjour

    J'aimerais ex�cuter le code suivant:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"$filename.csv\"");
    echo $data;
    (ou $data contient des donn�es)

    � partir d'un HTTP_Request ajax...c'est possible?

    Je suis incapable de le faire fonctionner, la fonction fait juste rien.

    Merci

  2. #2
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par d�faut
    Yop!


    J'ai l'impression qu'il y a une erreur de syntaxe dans la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    header("Content-Disposition: attachment; filename=\"$filename.csv\"");
    Tu ne dois pas n�cessairement ajouter de guillemets autours du nom du fichier, donc tu devrais pouvoir faire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    header("Content-Disposition: attachment; filename=".$filename.".csv");
    De plus, il faut veiller � ce que rien ne soit affich� avant de faire appel � la fonction header.

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par d�faut
    Ah �a doit �tre �a...car tel quel, �a fonctionne dans une page � part.

    Y'a t-il un autre moyen?

  4. #4
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par d�faut
    Yop!

    Citation Envoy� par Prosis Voir le message
    Y'a t-il un autre moyen?

    Non, si tu affiches quoi que ce soit, un header est envoy� au client. Et une fois que ce header est parti, il n'y a plus moyen d'en envoyer un autre sans une nouvelle requ�te du client.

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par d�faut
    Bon alors je vais essayer de trouver un autre moyen...c'est que je ne voulais pas avoir un fichier physique sur le serveur pour le temps d'un t�l�chargement.

    Merci

  6. #6
    Membre �prouv�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par d�faut
    Tu peux �crire ton fichier dans php://memory sa ouvre un espace logique dans la m�moire pour y �crire comme dans un fichier.

    Apr�s le probl�me de ta requ�te AJAX pour faire t�l�charger un fichier ce qu'il n'est pas dit que le navigateur vas savoir proposer � l'utilisateur d'enregistrer le fichier, CAR au d�part c'est une requ�te r�aliser avec xmlhttprequest en JS.

    Le plus simple amha, c'est que tu modifies le target de ton lien, ou formulaire, vers une iframe cach�. Sans utiliser d'AJAX, juste du JS.
    Comme cela tu fais une requ�te classique, et tous les bons trucs de d'habitudes fonctionneront comme avant.

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par d�faut
    Comment est-ce qu'on utilise php://memory?

    En fait, je veux que le fichier se cr�� lorsque l'utilisateur clique sur un lien et qu'il s'offre � t�l�charger aussit�t.

    J'aime pas trop la solution iframe mais j'ai l'impression que ce sera la seule option hein?

  8. #8
    Membre �prouv�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par d�faut
    BAh c'est peut �tre pas la seule solution. Y'en a peut �tre d'autres. Mais c'est une que, moi, j'utiliserais. Et qui me satisferais pleinement. D'un point de vu technique c'est tr�s propre, et ce n'est pas plus difficile que cela.

    Pour ce qui est de mon commentaire sur php. Il s'agit d'un wrapper. en fait c'est un peu de magie. Tu fais $fp = fopen("php://memory"); et tu obtiens un pointeur sur un fichier logique en lecture/�criture. quand tu le fermes la m�moire se lib�re.
    simple.
    Tu t'en sers lorsque tu souhaites cr�er des petits fichiers � la vol�e. Enfin la pour taille, sa d�pend essentiellement de l'h�bergement ; )
    http://www.php.net/manual/fr/wrappers.php.php

Discussions similaires

  1. R�ponses: 8
    Dernier message: 01/04/2011, 08h15
  2. R�ponses: 20
    Dernier message: 18/05/2010, 14h48
  3. [AC-2003] Modifier les tuples r�sultat d'une requ�te
    Par -ULK- dans le forum Requ�tes et SQL.
    R�ponses: 2
    Dernier message: 01/07/2009, 14h20
  4. [RegEx] Preg_replace avec une requ�te entre les remplacements
    Par sox83 dans le forum Langage
    R�ponses: 6
    Dernier message: 16/12/2005, 18h12
  5. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 22/11/2005, 00h55

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