我在symfony2中有一个页面,其中包含java applet和javascript函数,这些函数使java applet加载文件。这些文件是用户相关的,每个文件都必须存储在用户文件夹中。
用户将其文件夹放在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>
答案 0 :(得分:-1)
如果您的doc root位于Web目录中,则无法执行您要执行的操作。这是“根”目录,这意味着您无法从浏览器访问任何内容。这是一件好事,否则浏览您网站的人将能够访问其他目录,例如您的应用安全配置等...
您有几种选择:
a)使用web子目录来保存用户文件,例如web / temp
b)将它们放在其他地方并根据需要将它们复制到web子文件夹中。这就是symfony为资产所做的事情
c)创建一个新的控制器,拦截'temp / {user} / {filename}'之类的路由,然后从你持有文件的目录中提供这些文件。