【问题标题】:Symfony accessing mp3 files outside of web directory to play in browserSymfony 访问 web 目录之外的 mp3 文件以在浏览器中播放
【发布时间】:2015-07-09 01:39:04
【问题描述】:

如何访问 app/Resources/userFiles/mp3s 目录中的 mp3?在我的控制器内部,我渲染了一个带有 [audio] 标签的视图,但我需要访问 web 目录之外的 mp3 文件。

  1. 进行 ajax 调用以请求 mp3 文件(完成)。

  2. 在我的控制器中,我想抓取该目录中的 mp3,例如:

    $track = "file.mp3";
    $fileLocation = $this->get('kernel')->getRootDir().'/Resources/userFiles/mp3s/'.$track;
    
  3. 然后将该 mp3 传递给具有 [audio] 标签的模板。

    $trackHtml = $this->renderView('MyBundle:Public:track.html.twig', array(
        'id'=>$request->request->get("id"),
        'fileLocation'=>$fileLocation,
    ));
    
  4. 然后通过 ajax 将响应发送回,以便用户可以听到页面上已在 [audio] 标签中设置的音频(完成)。

    $data = array(
       "track"=>$trackHtml,
    );
    return new JsonResponse($data);
    

底线,我不知道如何访问该 mp3 以公开显示它。

is_file($fileLocation = $this->get('kernel')->getRootDir().'/Resources/userFiles/mp3s/'.$track) is TRUE, 

我只是不能公开文件。

谢谢。

【问题讨论】:

标签: php ajax symfony audio


【解决方案1】:

您无法从网络访问app/Resources。该文件夹主要用于覆盖模板和存储资产(js 和 css 文件)。根据最新的 symfony2 最佳实践 (Web Assets),即使资产也应该存储在 web 目录中。

  1. 您可以在 Web 目录中创建指向 app/Resources/mp3 的符号链接。
  2. 将其完全移动到 web 下。
  3. 使用自定义操作将文件内容输出到浏览器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 2023-04-09
    • 2021-09-17
    • 2011-08-28
    • 2013-01-10
    • 1970-01-01
    • 2011-05-03
    • 2021-11-29
    相关资源
    最近更新 更多