À la fin de ta action, tu forces les header.
Allez, je suis sympa. Voici ceux que j'utilise quand je veux forcer le
téléchargement ;)

   $this->getResponse()->clearHttpHeaders();
    $this->getResponse()->setHttpHeader('Pragma', 'public', true);
    $this->getResponse()->setHttpHeader('Cache-Control', 'no-store,
no-cache, must-revalidate');
    $this->getResponse()->setHttpHeader('Expires', '0');
    $this->getResponse()->setHttpHeader('Content-Type',
'application/octet-stream');
    $this->getResponse()->setHttpHeader('Content-Disposition', sprintf('%s;
filename="%s"', 'attachment', $filename));
    $this->getResponse()->setHttpHeader('Content-Transfer-Encoding',
'binary');
    $this->getResponse()->sendHttpHeaders();

-----Message d'origine-----
De : symfony-fr@googlegroups.com [mailto:symfony...@googlegroups.com] De la
part de manuel brossard
Envoyé : jeudi 2 décembre 2010 16:23
À : symfony-fr@googlegroups.com
Objet : Re: [symfony-fr] export csv collection -> array

Oui j' y avais pensé mais c' est pas ce qui est démandé, le client veut un
vrai export, le fichier est généré et téléchargé par le browser. 

J' ai la fin (mon fichier est vide) mais pas le début car j' ai un soucis
avec le type des données récupéré. La  fonction fputcsv attends un array en
second paramètre et moi j' ai une collection .




Le 2 décembre 2010 14:52, Lélio ML <mailing-l...@lelio.fr> a écrit :


        Le mieux est de passer par les templates.
        Tu fais la même chose de d'habitude sauf que ton template afiche les
champs
        avec ton séparateur.
        Le template pourra être nommé exportationEvaluationSuccess.csv.php
si tu
        mets dans ta route le paramètre sf_format
        
        Ainsi il te sera facile par la suite d'exporter en xls ou xml par
exemple
        rien qu'en modifiant le sf_format de la route : une seule action et
autant
        de templates que d'exports possibles
        
        /evaluation/export.csv => exportationEvaluationSuccess.csv.php
        /evaluation/export.xml => exportationEvaluationSuccess.xml.php
        
        par exemple.
        
        -----Message d'origine-----
        De : symfony-fr@googlegroups.com
[mailto:symfony...@googlegroups.com] De la
        part de mantex
        Envoyé : jeudi 2 décembre 2010 14:48
        À : Symfony-fr
        Objet : [symfony-fr] export csv collection -> array
        

        J' essai de récupérer une collection d' enregistrements en csv.
        
        cela fonctionne avec un tableau de tableau rempli manuellement mais
poas
        lorsque j' essai de recupérer la collection "evaluations"
        
        Voici ma fonction..
        
        
        public function executeExportationEvaluation (sfWebRequest $request)
        
          {
        
          $this->id = $request->getParameter('id');
          $evaluations = Doctrine_Core::getTable('Evaluation')-
        >getEvaluationbycustomer(2);
        
          $fp =
fopen('/usr/share/php/symfony/data/web/monprojet/web/uploads/
        file.csv', 'w');
        
          foreach ($evaluations as $fields) {
          fputcsv($fp, $fields);
           }
        
           fclose($fp);
        
           $fichier =
'/usr/share/php/symfony/data/web/monprojet/web/uploads/
        file.csv';
           header('Content-Type: application/csv;name='.$fichier);
           header('Content-Disposition: attachment;filename='.$fichier);
        
        
           readfile($fichier);
           return sfView::HEADER_ONLY;
        
        
          }
        
        --
        Vous recevez ce message, car vous êtes abonné au groupe Google
        Groupes Symfony-fr.
        Pour envoyer un message à ce groupe, adressez un e-mail
        à symfony...@googlegroups.com.
        Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
        symfony-fr+unsubscr...@googlegroups.com
<mailto:symfony-fr%2bunsubscr...@googlegroups.com> .
        Pour plus d'options, consultez la page de ce groupe :
        http://groups.google.com/group/symfony-fr?hl=fr
        
        
        --
        Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes Symfony-fr.
        Pour envoyer un message à ce groupe, adressez un e-mail à
symfony...@googlegroups.com.
        Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
symfony-fr+unsubscr...@googlegroups.com
<mailto:symfony-fr%2bunsubscr...@googlegroups.com> .
        Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr
        
        




--
Cordialement,

Manuel Brossard
Twitter: twitter.com/infonel
Skype : mantex2039

Tel: + 33 9 72 17 00 41



--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail à
symfony...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr


-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à