- Cách 1: Code trong cả action và template
$this->setLayout(false);
$this->binaryData = 'Hello World ...';
//Download file
$filename = 'export_' . gmdate('d-m-Y_H-i-s') . '.bin';
if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE'))
header('Content-Type: application/force-download');
else
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="' . $filename . '"');
header('Expires: -1');
header('Cache-Control: post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
downloadSuccess.php
echo $this->binaryData;
- Cách 2: Chỉ code trong action
//Download file
$filename = 'export_' . gmdate('d-m-Y_H-i-s') . '.bin';
if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE'))
header('Content-Type: application/force-download');
else
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="' . $filename . '"');
header('Expires: -1');
header('Cache-Control: post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
echo $binaryData;
// Stop symfony process (nếu ko có dòng này sẽ bị warning: headers already sent
throw new sfStopException();
Title:
Force download trong Symfony
Description:
- Cách 1: Code trong cả action và template $this->setLayout(false); $this->binaryData = 'Hello World ...'; //Download file...
...
Rating:
4