我尝试使用常见的 PHP 解决方案,例如按照Stony的建议设置 Session 变量,但是 Symfony2 会话中有些东西我丢失了。即使在 Symfony2 控制器中定义了变量,$_SESSION
对象似乎也不包含它。
因此,我尝试按照Stony的建议遵循“控制器方式” 。
以下是我所做的。假设必须通过 http 调用运行 PHP 类“FileUpload.php”。PHP 文件具有要使用的FileUpload类。就我而言,调用是通过 AJAX 完成的。因此,我应该做类似的事情:
<script>
load('http://path/to/fileupload.php')
<script>
whereload()
是用于 AJAX 调用的虚拟 Javascript 函数。
当然,最初的想法是在 FileUpload.php 中包含所有控件。我不能!所以呢?
很简单,在 Symfony2 中创建一个控制器。然后创建你的动作。例如
public function fileUploadAction(){
//control if user is logged and has required role as usual with Symfony2
$uploader = new \Path\To\\FileUpload();
//do something with object uploader
exit(0);//Symfony will not require an answer, but you did what you needed
}
当然,网页中的脚本也要更新:
<script>
load("{{path('route_to_fileUploadAction')}}")
<script>
请记住将 FileUpload.php 放在安全文件夹中。