2015-10-17 38 views
0

我已经复制了上传Symfony2项目中的文件的所有代码,该项目将所有数据存储在web/uploads文件夹中。代码是从here在我的Symfony2项目中上传文件/图像时出错

这是工作在本地主机正常,但在远程服务器是抛出一个错误:

Could not create target directory to move temporary file into. 
    500 Internal Server Error - RuntimeException 

enter image description here

请解决这个问题... 提前感谢!

+2

如图所示的第40行,代码尝试创建文件夹时发生错误,您必须在服务器中看到是否可以创建新文件夹的权限。 –

+1

是的,这是一个权限问题,你需要chmod那个坏男孩! –

回答

0

在我看来,你的上传目录路径是错误的。它说你试图创建:“%kernel.root_dir%/ ../web/uploads”

你应该首先从容器中提取参数“kernel.root_dir”,然后创建上传目录的路径。就像这样:

$kernelRootDir = $this->container->getParameter('kernel.root_dir'); 
$uploadDirPath = $kernelRootDir . '/../web/uploads'; 

我的建议是手动创建该文件夹,并设置它的权限,以775。如果它的当务之急是PHP创建上传目录,确保Apache用户有写/ web目录

特权
+0

感谢您的宝贵答复,但即使它不工作..我已经尝试了所有可能的方式从你的答案。 –

+0

你想创建什么样的direcoty路径?你可以手工创建它,只需将文件移动到那里? –

+0

手动的方式, 以前它是'受保护的静态$ uploadDirectory ='%kernel.root_dir%/ ../uploads';'在'Document.php' 我试过给'$ uploadDirecctory ='/ uploads''并在所有使用$ $ kernelRootDir = $ this-> container-> getParameter('kernel.root_dir');'as as $ uploadDirectory.self :: $ uploadDirectory'调用$ uploadDirectory变量的所有方法中concatinated –