2012-03-28 13 views
1

Ich versuche, eine CSV-Datei durch eine Aktion zu liefern. Der Mime-Typ in der Antwort wird weiterhin als text/html angezeigt. Kann jemand helfen? DankeAnhang senden/Datei von Symfony Aktion herunterladen

 //$this->setLayout(false); 
     //$this->getUser()->shutdown(); 
     //sfConfig::set('sf_web_debug', false); 
     $response = $this->getContext()->getResponse(); 
     $response = $this->getResponse(); 
     $response->clearHttpHeaders(); 
     $response->setHttpheader('Pragma: public', true); 
     $response->addCacheControlHttpHeader('Cache-Control', 'must-revalidate'); 
     $response->setContentType('application/octet-stream', true); 
     $response->setHttpHeader('Content-Description', 'File Transfer'); 
     $response->setHttpHeader('Content-Transfer-Encoding', 'binary', true); 
     $response->setHttpHeader('Content-Length', filesize($file_path)); 
     $response->setHttpHeader('Content-Disposition', 'attachment; filename="' . $file_name . '"'); 
     $this->getResponse()->sendHttpHeaders(); 
     //$response->setContent(file_get_contents($file_path)); 
     //readfile($file_path); 
     $this->renderText(file_get_contents($file_path)); 
     //return sfView::NONE; 

     return sfView::HEADER_ONLY; 

Vertrauen Sie mir, bevor ich hier bin, habe ich alle Suchergebnisse lila. Wie Sie sehen können alle Kombinationen & oben, konnte ich immer noch nicht funktionieren!

+0

Dies übertreibt es ein wenig zu sehen sein - die HEADER_ONLY und sendHttpHeaders sollte nicht nötig sein, aber der Rest ist ein Ein guter Überblick darüber, was es braucht, um wie ein statischer Dateiserver zu funktionieren. – aredridel

Antwort

6

so etwas wie dieses Versuchen:

$path = 'absolute/path/to/the/file'; 

/** @var $response sfWebResponse */ 
$response = $this->getResponse(); 

$response->setContentType('text/csv'); 
$response->setHttpHeader('Content-Disposition', 'attachment; filename="' . basename($path) . '"'); 
$response->setContent(file_get_contents($path)); 

return sfView::NONE; 

Hinweis: Dateiname muss ASCII RFC 6266

+0

danke, werde dies in ein paar Tagen versuchen! – Prasad