php GD图像无法创建的问题

Thi*_*its 1 php gd image

使用以下代码,我的浏览器返回"图像未创建或保存".我向你保证图像的位置存在.所以if语句中的行由于某种原因返回false,并且是安装了GD.有任何想法吗?

if ($img = @imagecreatefromjpeg("/var/www/images/upload/1/1.jpg")) {

            die("image was created");

     } else {

         die ("image was not created or saved");

     }
Run Code Online (Sandbox Code Playgroud)

好的,我这样做了:

<?php

error_reporting(E_ALL);

if (fopen('/var/www/images/upload/1/1.jpg')) {

    echo 'file was opened';

} else {

    echo 'file was not opened';

}


?>
Run Code Online (Sandbox Code Playgroud)

每次都没有打开返回文件,apache组拥有所有这些文件夹的所有权限.GD或PHP是不同的用户名?

从测试脚本执行is_readable()后,它返回true.还有什么问题呢?

所以...当我运行脚本时:

error_reporting(E_ALL);
imagecreatefromjpeg("/var/www/images/upload/1/1.jpg");
print_r(error_get_last());
echo ("hi");
Run Code Online (Sandbox Code Playgroud)

我收到了死亡白屏.如果我注释掉imagecreatefromjpeg行,屏幕会显示'hi'

刚尝试了500k jpg图像,看看它是否是内存问题,但仍然有白屏.

当我在if语句中运行imagecreatefromjpeg并通过终端运行脚本时,imagecreatefromjpeg成功!= \仍然无法弄清楚为什么它不会起作用.编辑:通过我的浏览器运行这个确切的脚本也是成功的.

Zak*_*Zak 5

显然,$ img的值并未评估为真.

对不起,这太难以抗拒..我的观点是,你的帖子中没有其他所有废话.

如果进程无法读取文件,则映像创建可能会失败.尝试打开文件进行读取.另外,摆脱函数调用前的错误抑制(@).然后将error_reporting设置为E_ALL并将display_errors设置为on.

更新:如果fopen失败,则运行php的用户没有该文件的读取权限.尝试使用fopen和fwrite将文件写入/ tmp,以查看您的php/apache进程正在运行的用户.然后确保用户具有读取权限.或者您可以尝试将文件chmoding为o + r以确认每个人的读取权限都可以解决我们的问题.