即使在0777目录中,也不会使用imagepng创建PNG图像

时间:2015-06-02 12:58:26

标签: php linux ubuntu

Android应用中,我将photo发布到webserver。在PHP脚本中,我想将文件保存在directory

$name = "parcelle_" . $photo->lireBienPhotoSeq() . ".png";
if ( ! file_exists (RP_PHOTO_PARCELLE) ) {
    mkdir(RP_PHOTO_PARCELLE, 0777, true);
    chmod(RP_PHOTO_PARCELLE, 0777);
}
$dest = DIR_MAIN . '/data/photo_parcelle/' . $name;
$image = base64_decode($_POST["image"]);
$img = imagecreatefromstring($image);
if ($img !== false)
    imagepng($img, $dest);
$chemin = PHOTO_PARCELLE . $name;

问题是image未创建,Android应用程序收到响应代码500(HTTP_INTERNAL_ERROR)!我发了ls -l来查看directory的权利,它是0777.那有什么不对?

2 个答案:

答案 0 :(得分:0)

在这个问题上可能会出现一些问题,而且您的描述不够详细。

图像是如何发布的?

您确定它是作为POST变量发送的,而不是作为$ _FILES中的上传文件发送的吗?

你确定$ _POST [' image']包含可识别图像格式(JPEG,PNG,GIF,WBMP和GD2)的内容而不是原始数据?

您确定RP_PHOTO_PARCELLE与DIR_MAIN相同吗? ' /数据/ photo_parcelle /' ?

imagecreatefromstring($ image)的结果是什么? ?

如果您直接调用脚本,是执行还是500错误?

答案 1 :(得分:0)

查看日志后,imagecreatefromstring函数未知,因此安装了gd软件包并且可以正常工作!服务器是新的,而不是我的本地计算机!洛尔