Symfony2 KnpLabsGaufrette - 每个树枝获取本地文件系统(可下载文件)

时间:2014-03-13 07:53:01

标签: php symfony filesystems gaufrette

我正在使用这个config.yml。

knp_gaufrette:
    adapters:
       uploaded_files:
            local:
                directory: "%kernel.root_dir%/../web/uploads"
                create: true
    filesystems:
        uploaded_files:
            adapter:    uploaded_files
            alias:      uploaded_files

现在我想根据树枝访问上传的文件。 还有例如:

<a href="{{ path('gaufrette_download', {system: 'uploaded_files', file: 'test.txt'}) }}>{{ 'Download' | trans }}</a>

该文件应该有一个类似...的路径

http://localhost/web/uploads/test.txt

我希望直接访问文件。 没有控制器(动作)。

这可能吗?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果您的文件夹可通过网络访问(即您可以在地址栏中输入网址http://localhost/web/uploads/test.txt并下载文件),您只需将路线gaufrette_download映射到该路径即可。您的论坛routing.yml可能如下所示(请注意丢失的defaults: { controller: ... }):

gaufrette_download:
    path: /web/uploads/{file}

如果您的.htaccess被正确定义,您的网络服务器应该提供文件而不是访问您的应用程序。您可能需要添加file的要求,例如允许斜杠(搜索symfony食谱)

如果你只想跳过编写控制器(动作),你也可以create an event listener which is triggered when your request matches the route