【问题标题】:How to create a link that download a file in Symfony如何在 Symfony 中创建下载文件的链接
【发布时间】:2015-05-08 17:26:19
【问题描述】:

我做了一些研究,发现了这篇文章: How to create a link to download generated documents in symfony2?

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

凯文·杜圭

【问题讨论】:

    标签: file symfony pdf hyperlink download


    【解决方案1】:

    设置一个动作。 这对路线使用注释。您当然可以使用 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 找到此方法的路由标识符,然后执行:下载pdf。很确定它不会重新加载您的页面
    • @KévinDuguay我更新了我的答案。将内容处置设置为附件时,它不会更改您的页面或重新加载它。
    • 确切的类命名空间是:Symfony\Component\HttpFoundation\BinaryFileResponse(别忘了使用)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2012-03-01
    • 2010-12-03
    • 1970-01-01
    • 2019-01-14
    • 2020-10-27
    • 1970-01-01
    相关资源
    最近更新 更多