0
我正在嘗試創建一個批處理操作(symfony admin),該操作可以創建/下載包含用戶照片的zip文件,這些照片可以在uploads/images目錄中使用。Symfony批處理操作
這裏是我已經實施的代碼:
public function executeBatchDownloadFotos(sfWebRequest $request)
{
$zip = new ZipArchive();
// atheletes identifiers
$ids = $request->getParameter('ids');
// get all the atheletes objects
$q = Doctrine_Query::create()
->from('Atleta a')
->whereIn('a.id', $ids);
foreach ($q->execute() as $atleta)
{
$zip->addFile($atleta->id . '_' . $atleta->Clube . '.jpg', 'uploads/atletas/' . $atleta->id . '_' . $atleta->Clube . '.jpg');
}
}
用另一隻手,這裏是視圖配置:
BatchDownloadFotos:
http_metas:
content-type: application/zip
has_layout: false
出於某種原因,每次執行批處理動作,瀏覽器不會提示我用窗口下載zip文件。
嗨! 我應該在setHttpHeader()方法中放置什麼? 感謝您的幫助! 此致敬禮! – 2010-06-18 18:24:08
您應該設置HTTP標頭的名稱和值:http://www.symfony-project.org/api/1_4/sfWebResponse#method_sethttpheader。所以,你的情況應該是「Content-Type」和「application/zip」。您還應該設置「Content-Disposition」標頭:http://en.wikipedia.org/wiki/MIME#Content-Disposition – 2010-06-18 18:40:30
嗨! 運行你的代碼,我注意到test.zip文件不是在/ tmp /目錄下創建的。 任何想法爲什麼會發生這個問題? 感謝您的幫助, 此致敬意! – 2010-06-21 17:02:26