2014-07-13 77 views
8

我需要通过控制器提供pdf文件,但我无法在浏览器窗口中打开它们。当我发送PDF文件的回复时,它会呈现乱码,或者如果我按照http://symfony.com/doc/current/components/http_foundation/introduction.html#serving-files的示例进行下载,但我需要在查看模式下打开它,我该怎么做?Symfony2服务器打开pdf文件

这里是我心中已经走到这一步:

return new Response(readfile('/file/path/file.pdf'), 200, 
    array('Content-Type' => 'application/pdf') 
); 

我失去了一些东西,或者也许有什么毛病我的PHP或Apache的配置?

+2

尝试设置'Content-Disposition:inline; filename.pdf'标题。 – Rufinus

回答

30

找到了解决办法:

example

use Symfony\Component\HttpFoundation\BinaryFileResponse; 

之前控制器类声明添加BinaryFileResponse在控制器的行动回报BinaryFileResponse

return new BinaryFileResponse('/file/path/file.pdf'); 
-5

我有同样的问题

尝试加这个:

use \Symfony\Component\HttpFoundation\Response; 
....... 
return $response->headers->set('Content-type' , 'application/pdf');