File 如何在Symfony中创建下载文件的链接

File 如何在Symfony中创建下载文件的链接,file,symfony,pdf,hyperlink,download,File,Symfony,Pdf,Hyperlink,Download,我做了一些研究,发现了以下帖子: 我尝试了这个解决方案,但它会在浏览器中显示我的pdf,但我想要的是,当有人单击链接时,它会直接下载文件。Symfony有办法做到这一点吗 Kévin Duguay设置一个动作。 这将对管线使用注释。当然,您可以使用yml或xml或您当前正在使用的任何东西 /** * @Route("/download", name="download_file") **/ public function downloadFileAction(){ $response

我做了一些研究,发现了以下帖子:

我尝试了这个解决方案,但它会在浏览器中显示我的pdf,但我想要的是,当有人单击链接时,它会直接下载文件。Symfony有办法做到这一点吗

Kévin Duguay

设置一个动作。 这将对管线使用注释。当然,您可以使用yml或xml或您当前正在使用的任何东西

/**
 * @Route("/download", name="download_file")
**/
public function downloadFileAction(){
    $response = new BinaryFileResponse('path/to/pdf.pdf');
    $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT,'pdf.pdf');
    return $response;
}
细枝模板:

<a href="{{path('download_file')}}">Download file</a>


谢谢,但只有一个问题,我如何使用链接调用该操作,并且我不希望该链接更改我的页面?我假设您使用twig作为视图,因此您必须使用php app/console router:debug然后do:。很确定它不会重新加载你的page@K埃文杜瓜伊更新了我的答案。将内容配置设置为“附件”时,它不会更改或重新加载页面。确切的类命名空间为:Symfony\Component\HttpFoundation\BinaryFileResponse(不要忘记使用)