【问题标题】:Symfony2 : access files in folder outside webSymfony2:访问网络外部文件夹中的文件
【发布时间】:2012-10-07 16:36:12
【问题描述】:

我在 symfony2 中有一个页面,其中包含一个 Java 小程序和使 Java 小程序加载文件的 javascript 函数。这些文件取决于用户,每个文件都必须存储在用户文件夹中。

用户的文件夹位于 symfony 文件夹 (/temp/) 的根目录中。现在我需要这些文件夹中的文件可用(比如资产?)。

// Controler ( What i have now )
$filepath = $this->get('kernel')->getRootDir().'/../temp/'.$userfolder;

// View ( what i would like -using twig )
{% set path = userfolder ~ '/' ~ filename %}
<a href="javascript:document.jmol.script('load {{ asset(path) }}; frame all');">link</a>

【问题讨论】:

    标签: symfony twig symfony-2.1


    【解决方案1】:

    如果您的文档根目录位于 web 目录中,则您无法执行您正在尝试执行的操作。这是“根”目录,这意味着您无法从浏览器访问任何内容。这是一件好事,否则浏览您网站的人将能够访问其他目录,例如您的应用安全配置等...

    您有多种选择:

    a) 使用 web 的子目录来保存您的用户文件,例如 web/temp

    b) 将它们保存在其他地方并根据需要将它们复制到网络子文件夹中。这就是 symfony 对资产所做的事情

    c) 创建一个新的控制器,它拦截诸如“temp/{user}/{filename}”之类的路由,然后从您保存文件的目录中提供这些文件。

    【讨论】:

    • 事实上我几乎确定这是不可能的......我在询问之前尝试了你的选项 a) 但是当我想创建一个像 mkdir($filepath, 0777); 这样的文件夹时我的权限被拒绝了。
    • 更改您的网络文件夹中的权限
    • web 和 web/temp 文件夹的权限为 777 (drwxr-xr-x)。
    猜你喜欢
    • 2023-04-11
    • 2016-03-10
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多