php - 如何创建链接以下载 symfony2 中生成的文件?

标签 php symfony twig

文档由系统创建并保存到文件夹/web/downloads。我创建了一个 View 来显示允许用户下载文件的链接,如果用户单击链接。 (标准点击下载功能)

我是 Symfony2 的新手并且正在了解整个路由/ Controller 概念,但是如何在仍然坚持 MVC 的同时创建到此类文件的链接?是否需要使用 Controller 设置路由,或者 twig 是否具有允许它等的功能。

附言: 我已经阅读了诸如 How to create a download link in Symfony2? 之类的问题但我不知道他们是在路由中做了什么还是只是添加了链接等。

谢谢,

最佳答案

示例实现是,

创建路线,

download_route:
    pattern:  /download/{filename}
    defaults: { _controller: YourBundle:Controller:download }

然后在你的 Controller 中,

public function downloadAction($filename)
{
    $request = $this->get('request');
    $path = $this->get('kernel')->getRootDir(). "/../web/downloads/";
    $content = file_get_contents($path.$filename);

    $response = new Response();

    //set headers
    $response->headers->set('Content-Type', 'mime/type');
    $response->headers->set('Content-Disposition', 'attachment;filename="'.$filename);

    $response->setContent($content);
    return $response;
}

用于生成下载链接检查Generating urls文档部分。

关于php - 如何创建链接以下载 symfony2 中生成的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122807/

相关文章:

php - 不同查询的行数总和

php - 如何创建可重用的 Twig 组件

基于 PHP 的项目管理应用程序(Scrum/Agile)

javascript - 语法错误: Unexpected token I in JSON at position 0

javascript - Morris Js 和 Codeigniter 从 Controller 传递数据

twitter-bootstrap-3 - 遵循 Bootstrap 3 表单的手动说明获取 yml 配置错误

php - SImple Symfony2 'Front Page' Controller 、路由器和模板。为什么我仍然看到欢迎页面?

php - symfony 2 在 url 末尾的斜杠

php - 使用 Liipimaginebundle 更新和删除缓存图像

php - Laravel 上的凭证