使用Symfony2下载文件

时间:2014-02-10 15:25:40

标签: php symfony download

在我的项目中,可以上传文件;我开发了Symfony2 documentation

我没有在控制器中创建能够下载这些文件的操作。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

我的版本如下:

/**
 * @Route("/download/{file_id}", name="download_file")
 */
public function downloadAction($file_id)
{
    // get your filepath from db somehow by file_id or whatever
    $path = ...

    $file = getimagesize($path);

    $response = new Response();
    $response->setContent(file_get_contents($path));
    $response->headers->set('Content-Type', $file['mime']);
    $response->headers->set('Content-Disposition', 'attachment; filename="' . $filename . '"');

    return $response;
}

答案 1 :(得分:0)

$response=new Response();
$response->setContent(file_get_contents($localFilePath));

如果强行下载,您可以使用:

$file_url = 'http://www.myremoteserver.com/file.exe';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
readfile($file_url); // do the double-download-dance (dirty but worky)