我正在使用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
我想直接访问文件。无控制器(动作)。
这可能吗?什么好主意吗?
如果你的文件夹是网络可访问的(即你可以在你的地址栏中输入url http://localhost/web/uploads/test.txt
并下载文件),你所要做的就是将路由gaufrette_download
映射到该路径。您的包的routing.yml
可能看起来像这样(注意缺少的defaults: { controller: ... }
):
gaufrette_download:
path: /web/uploads/{file}
如果你的.htaccess
定义正确,你的web服务器应该为文件服务,而不是访问你的应用程序。你可能需要添加file
的要求,例如允许斜杠(搜索symfony cookbook)
如果你只是不想写控制器(动作),你也可以创建一个事件监听器,当你的请求匹配路由时触发。