À 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 : [email protected] [mailto:[email protected]] De la
part de manuel brossard
Envoyé : jeudi 2 décembre 2010 16:23
À : [email protected]
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 <[email protected]> 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 : [email protected]
[mailto:[email protected]] 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
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected]
<mailto:symfony-fr%[email protected]> .
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 à
[email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected]
<mailto:symfony-fr%[email protected]> .
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 à
[email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
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
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr