0

我正在使用这个 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

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

这可能吗?有任何想法吗?

4

1 回答 1

2

如果您的文件夹可以通过网络访问(即您可以http://localhost/web/uploads/test.txt在地址栏中输入 url 并下载文件),您所要做的就是将路由映射gaufrette_download到该路径。您的捆绑包routing.yml可能如下所示(注意缺少defaults: { controller: ... }):

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

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

如果您只想跳过编写控制器(动作),您也可以创建一个事件侦听器,当您的请求与路由匹配时触发

于 2014-03-17T10:12:43.990 回答