gpt4 book ai didi

php - Symfony 2 - 上传文件,移动方法失败 - 无法创建目录...

转载 作者:可可西里 更新时间:2023-11-01 13:41:25 25 4
gpt4 key购买 nike

我正在学习 Symfony 2,但我在使用 UploadedFile 类时遇到了问题。我想在我的项目中处理文件上传,所以我学会了感谢官方文档:How to handle File Uploads with Doctrine

效果还不错。但是,它仅在本地有效。我使用 MAMP 来测试我的项目。

我试图将我的项目放在 Debian 6 服务器上。 Symfony 应用程序有效,但上传文件无效。当我使用 move() 方法移动文件时...出现此错误:

Unable to create the "/var/www/project/Symfony/src/project/Bundle/AlbumBundle/Entity/../../../../../web/images/postes_images" directory (500 Internal Server Error)

正如我所说,它在本地运行良好。如果文件夹 postes_images 不存在,它应该自己创建。它在本地运作良好......

这是我的上传功能:

public function upload($indexPoste, $indexPic)
{
if (null === $this->file) {
return;
}

$this->name = "poste_".$indexPoste."_pic_".$indexPic;
$this->path = "poste_".$indexPoste."_pic_".$indexPic.".".$this->file->getClientOriginalExtension();
$this->file->move($this->getUploadRootDir(), $this->path);

$this->file = null;
}

获取路径的函数:

public function getUploadRootDir()
{
return __DIR__.'/../../../../../web/'.$this->getUploadDir();
}

protected function getUploadDir()
{
return 'images/postes_images';
}

路径是正确的,因为它在本地运行良好。我在想是不是php配置的问题...我进行了一些搜索,我在 move 方法中读到,如果文件夹不存在,他们会调用“mkdir”方法来创建文件夹...如果 mkdir 调用返回 false,它会返回我在上面放置的错误。

如果您有解决此问题的想法,请。我找不到任何东西。

谢谢

最佳答案

如果您使用的是 Debian,您的网络用户应该是 www-data。所以你需要确保这个用户对你的web/images目录有写权限。这可能需要 root 或 sudo 访问权限,具体取决于您的用户权限。但是运行此命令以授予 www-data 访问权限:

chown -R www-data /var/www/project/Symfony/web/images

这将允许 www-data 用户拥有该目录并创建更多目录(假设所有者具有写入权限)。如果您不了解权限,请阅读 Debian Permission wiki了解更多。

关于php - Symfony 2 - 上传文件,移动方法失败 - 无法创建目录...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com