doubianyu7844 2015-06-03 07:31 采纳率: 0%
浏览 177
已采纳

Twig:将文件路径作为参数传递给url

I want to make files downloadble on click, but it does not work. Here comes my code:

files.html.twig

{% set filepath = asset('bundles/example/files/filename.pdf') %}
<a href="{{ url('_bundle_route_to_download', { 'filepath': filepath }) }}">
<button class="button button-icon button-download">Download</button></a>

controller.php

 /**
    * @Route("/example/download/{filepath}", name="_bundle_route_to_download")
    */
    public function downloadFile($filepath)
    {
      //...
    }

This is the error I get:

No route found for "GET    /example/download//bundles/example/files/filename.pdf%3F1418390151

What is wrong about my syntax?

  • 写回答

2条回答 默认 最新

  • doude2635 2015-06-03 07:34
    关注

    Your Syntax is not wrong, but Symfony2 Routing is looking for a route that does not exist. You need to url_encode your parameter.

    The Symfony2 Routing is looking for a URL matching /example/download//bundles/example/files/ which will not be found.

    {% set filepath = (asset('bundles/example/files/filename.pdf'))|url_encode %}
    <a href="{{ url('_bundle_route_to_download', { 'filepath': filepath }) }}">
    <button class="button button-icon button-download">Download</button></a>
    

    It is untested but should be doing the trick.

    For more Information, see Twig Url Encode

    Though I'd not recommend to pass it through as a parameter ... -> that's how you would do that.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算