文件未在服务器中写入

时间:2011-04-07 14:51:21

标签: php file

我开发了一个php项目。因为我将图像从flash传递给PHP。当我获得参数值时,我将转换为base64格式并写入新文件。(png image)。上述逻辑完全适用于我的本地系统。但是当我在服务器中部署这个seeting时。除了文件写入一切正常。

以下是生成图片的代码。

$filename = $templateID.'.png';

if ($handle = fopen("images/cat_images/".$filename, 'w'))
{
    if (!fwrite($handle, $somecontent) === FALSE)
    {
        fclose($handle);

        $query = "UPDATE `products` SET `template_data`='".$signData."' WHERE `id`=$templateID LIMIT 1";
        $db->query($query);
    }
}

2 个答案:

答案 0 :(得分:0)

如果你无法写,那肯定是你没有该目录的写权限。

授予目录写入权限。

修改

检查fopen中提到的路径是否正确。根据你的实时目录结构,我认为这是不正确的。

尝试在fopen

中提及完整路径
if ($handle = fopen("/full/path/here/images/cat_images/".$filename, 'w'))

答案 1 :(得分:0)

试试这个sudo chown www-data /path/to/images/ -r

将授予apache写入权限,或将www-data用户添加到您的组

sudo chmod a+w /path/to/images/ -r允许任何人在那里写,而不是最好的选择