获取图像保存的问题

时间:2009-09-13 16:45:47

标签: php image

我正在使用php动态创建图像。如果我进入并首先制作文件,则会创建图像。但是,如果我不手动创建文件,则会出现以下错误。

警告:imagegif()[function.imagegif]:无法打开'filename2.png'以写入第144行的/www/vhosts/yourraceresults.com/htdocs/trial/TextToImage.inc.php

示例:

public function SaveTextAsPng($fontSize, $x, $y, $textContent, $fileName='image'){
    imagestring($this->image, $fontSize, $x, $y,  $textContent, $this->text_color);
    return imagepng($this->image, "/www/vhosts/yourraceresults.com/htdocs/admin/trial/images/".$fileName.".png");
}

$ textToImage-> SaveTextAsPng(10,11,11,'fakeinfo','filename2');

4 个答案:

答案 0 :(得分:1)

您的网络用户(apache,www,...)似乎没有您要写入的文件夹中的写入权限。或者,如果文件已存在,则表示该文件没有写入权限。

修改:更改权限

假设您使用的是具有apache web-server的Linux系统,首先您需要找出您的Web服务器正在运行的用户。您需要在服务器(ssh)上获取命令shell,然后您可能会看到Web服务器用户键入以下命令:

$ ps aux | grep httpd

在列表中,您将看到所有正在运行的apache进程,并在第一列中显示用户名。

假设网络用户是apache,您现在需要在该目录中提供apache写权限。您可以通过将组更改为apache并为该组授予写入权限或将目录的所有权更改为apache来实现。假设您要更改组:

$ chgrp apache /www/vhosts/yourraceresults.com/htdocs/trial

授予所有者和组用户(apache)写权限:

$ chmod 775 /www/vhosts/yourraceresults.com/htdocs/trial

Disclamer:这是一个快速的解决方案,但我不太了解安全性,欢迎提出意见!

答案 1 :(得分:1)

输出文件夹不存在(在这种情况下您必须创建它),或者您对输出文件夹没有写入权限。解决这个问题:

  • 如果您正在使用shell:

    chmod 777 /www/vhosts/yourraceresults.com/htdocs/trial

  • 如果您使用的是FTP客户端:

    右键单击“试用”文件夹,搜索名为“chmod”,“rights”,“permissions”(可能在“properties”中)的内容,然后给予每个权限,或者输入chmod值777. / p>

答案 2 :(得分:0)

您是否已正确设置输出目录的权限?我认为您的Web服务器(以及带有它的php)无法写入目标文件夹。

答案 3 :(得分:0)

您的脚本似乎需要对该目录具有写权限。更改这些权限的简便方法是通过FTP登录并更改FTP客户端的权限。当您右键单击名为“权限”或“文件属性”(FileZilla)的文件夹或类似文件时,大多数(至少是我尝试过的少数)FTP客户端提供了一个选项。它应该显示一个具有不同权限复选框的对话框;确保至少给予所有者写入权限。如果您在* nix主机上,则应该能够转到该目录并发出命令chmod 755。更改权限。

编辑:chmod 777。如果755不起作用,将为您提供最多权限。