Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 即使在0777目录中,也不能使用imagepng创建PNG图像_Php_Linux_Ubuntu - Fatal编程技术网

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

Php 即使在0777目录中,也不能使用imagepng创建PNG图像,php,linux,ubuntu,Php,Linux,Ubuntu,从Android应用程序,我将photo发布到webserver。在PHP脚本中,我想将文件保存在目录中: $name = "parcelle_" . $photo->lireBienPhotoSeq() . ".png"; if ( ! file_exists (RP_PHOTO_PARCELLE) ) { mkdir(RP_PHOTO_PARCELLE, 0777, true); chmod(RP_PHOTO_PARCELLE, 0777); } $dest = DIR

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

$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;

问题是没有创建
图像
,并且
Android
应用程序接收到响应代码500(HTTP\u内部错误)!我做了一个
ls-l
来查看
目录的权限,它是0777。有什么不对劲吗?

这一次有几件事情可能会出错,而您的描述不够详细

图片是如何发布的

您确定它是作为POST变量发送的,而不是作为$\u文件中的上载文件发送的吗

您确定$\u POST['image']包含可识别图像格式(JPEG、PNG、GIF、WBMP和GD2)的内容,而不是原始数据的内容吗

你确定RP_PHOTO_PARCELLE与DIR_MAIN相同吗?”/数据/照片_parcelle/'

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


如果您直接调用脚本,您是否让它执行或出现500个错误?

此脚本可能会出错,您的描述不够详细

图片是如何发布的

您确定它是作为POST变量发送的,而不是作为$\u文件中的上载文件发送的吗

您确定$\u POST['image']包含可识别图像格式(JPEG、PNG、GIF、WBMP和GD2)的内容,而不是原始数据的内容吗

你确定RP_PHOTO_PARCELLE与DIR_MAIN相同吗?”/数据/照片_parcelle/'

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


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

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

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

如果客户端出现500错误,您需要查看web服务器的错误日志以了解更多详细信息。只要PHP有健全的错误报告设置,错误就会在那里被解释出来。我建议从常规web浏览器而不是手持设备对此代码进行故障排除,并在测试中启用显示错误,以便您可以看到它失败。在顶部
错误报告(E_ALL);ini设置(“显示错误”,1)始终在开发中,在生产中删除。您有2个(或更多)选项:根据建议查看错误日志,或模拟一个简单的HTML表单,该表单使用文件输入发布到同一个PHP端点以提交png图像。HTTP最好的一点是,服务器不知道连接的是什么类型的客户端。您应该避免使用0777(所有者/组/所有人使用rwx)作为目录权限,而应该使用0755(u:rwx,g:rw,o:rw)或更好的0750(u:rwx,g:rw,o:-),
chmod
是完全不必要的,而且当您创建目录时,权限已经设置好。此外,
$\u POST
变量中不会出现文件。。。它们在变量中处理。最简单的方法是查看它,以获取临时位置并将其移动到需要的位置,或读取其内容。@KevinNagurski看起来希望通过常规POST而不是多部分正文和
$\u文件来接收base64编码的字符串。如果客户端收到500个错误,您需要查看web服务器的错误日志以了解更多详细信息。只要PHP有健全的错误报告设置,错误就会在那里被解释出来。我建议从常规web浏览器而不是手持设备对此代码进行故障排除,并在测试中启用显示错误,以便您可以看到它失败。在顶部
错误报告(E_ALL);ini设置(“显示错误”,1)始终在开发中,在生产中删除。您有2个(或更多)选项:根据建议查看错误日志,或模拟一个简单的HTML表单,该表单使用文件输入发布到同一个PHP端点以提交png图像。HTTP最好的一点是,服务器不知道连接的是什么类型的客户端。您应该避免使用0777(所有者/组/所有人使用rwx)作为目录权限,而应该使用0755(u:rwx,g:rw,o:rw)或更好的0750(u:rwx,g:rw,o:-),
chmod
是完全不必要的,而且当您创建目录时,权限已经设置好。此外,
$\u POST
变量中不会出现文件。。。它们在变量中处理。最简单的方法是查看它,以获取临时位置并将其移动到需要的位置,或读取其内容。@KevinNagurski看起来希望通过常规POST而不是多部分正文和
$\u文件来接收base64编码的字符串。如果客户端收到500个错误,您需要查看web服务器的错误日志以了解更多详细信息。只要PHP有健全的错误报告设置,错误就会在那里被解释出来。我建议从常规web浏览器而不是手持设备对此代码进行故障排除,并在测试中启用显示错误,以便您可以看到它失败。在顶部
错误报告(E_ALL);ini设置(“显示错误”,1)始终在开发中,在生产中删除。您有2个(或更多)选项:根据建议查看错误日志,或模拟一个简单的HTML表单,该表单使用文件输入发布到同一个PHP端点以提交png图像。HTTP最好的一点是,服务器不知道连接的是什么类型的客户端。您应该避免使用0777(所有者/组/所有人使用rwx)作为目录权限,而应该使用0755(u:rwx,g:rw,o:rw)或更好的0750(u:rwx,g:rw,o:-),
chmod
是完全不必要的,而且当您创建目录时,权限已经设置好了,