【问题标题】:imagepng returns null and doesn't save file on serverimagepng 返回 null 并且不在服务器上保存文件
【发布时间】:2017-06-15 18:41:24
【问题描述】:

我有一个奇怪的问题,希望你能帮我解决。 我正在开发一个 Laravel 项目,并具有通过以下方式减小图像大小的功能:imagepng - 在本地副本上效果很好,但在服务器上,图像不会保存到文件夹中(0755 权限)。 这是函数:

public function imageReduce($file, $fullname, $unique){

    $image = imagecreatefromstring(file_get_contents($_SERVER['DOCUMENT_ROOT']."/".$fullname));
    $imageName = "/pics/reduced/$unique-$file.png";
    $fullPath = $_SERVER['DOCUMENT_ROOT']."/".$imageName;
    imagepng($image, $fullPath, 9);
    $path['path'] = $_SERVER['HTTP_HOST'].$imageName;
    return $path;
}

我不知道从哪里开始寻找,因为如上所述 - 它在本地运行良好。

谢谢!

【问题讨论】:

  • 你检查过你的错误日志吗?你在服务器上安装了 php-gd 吗?
  • 0755 permission for www-data?
  • 没有错误,不知道 php-gd 是什么,所以我假设没有。 0755 pics/reduced 文件夹的权限
  • $_SERVER['HTTP_HOST']后面没有加分隔符
  • 是的。然而,这不是图像没有被保存的原因。保存部分应在“imagepng”内

标签: php laravel image-processing


【解决方案1】:

查看 $fullpath。你有一个尾随的“/”,但 $imageName 也有一个前导的“/”。 连接时,最终结果是 $fullpath 中的双 '//'。

另外 - 为了帮助您调试,为什么不打开错误?

error_reporting(E_ALL);
ini_set('display_errors', 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    相关资源
    最近更新 更多