PHP gd库imagepng函数未覆盖



我的文件在线托管在A2主机上。基本上我的网站的一部分创建了一个图像在'images/$var.png'其中$var被传递到创建图像的文件。稍后,另一个php文件运行,它应该创建一个新图像并覆盖旧的图像。所以它应该是这样的:

  1. Maker1创建狗的图片,保存到服务器
  2. Maker2将狗的图片改为猫的图片。

这个过程的第一部分工作得很好。创建第一个映像并将其保存到服务器。但是,当第二个映像需要覆盖它时,该函数就失败了。在这两种情况下,我都使用imagepng来保存文件。文档说它会自动覆盖现有的文件。然而,第二个版本的文件没有被保存。

然后我尝试unlink和imagedestroy首先从服务器上销毁旧图像。这两种方法都行不通。两者都返回"图像无法删除"。没有错误显示。

代码本质上是这样的。File1包含

function update_image($row){
if(imagedestroy('assets/images/$row[0].png')) {
echo ("Image destroyed. ");
} else {
echo("Image not destroyed. ");
}
imagecreatefrompng('assets/images/base.png');
// image is manipulated

if(imagepng($base, "assets/images/$row[0].png")){
echo("New image saved. ");
} else {
echo("Image could not be saved. ");
}
}

和File2包含:

function image_cron(){
// mysqli_query gets rows of info
// loop calls update_image on each row
}

File2是自动调用的cron。我已经用echo进行了测试,这个文件被正确调用并链接到File1。File1中的函数update_image也被正确调用。在尝试替换图像时,"图像未被销毁"。";无法保存图像。";在每次循环时返回。

我认为你应该检查一下目录权限。有可能您提供了一些特定的权限,或者特定的目录只有所有者权限。否则,如果您使用相同的函数并使用相同的文件名(包括扩展名),则似乎没有问题。

最新更新