Php 获取要保存的图像时出现问题
我正在使用php动态创建一个图像。如果我先进入并创建文件,则会创建图像。但是,如果我不手动创建文件,则会出现以下错误Php 获取要保存的图像时出现问题,php,image,Php,Image,我正在使用php动态创建一个图像。如果我先进入并创建文件,则会创建图像。但是,如果我不手动创建文件,则会出现以下错误 警告:imagegif()[function.imagegif]:无法打开“filename2.png”以便在第144行的/www/vhosts/yourracesults.com/htdocs/trial/TextToImage.inc.php中写入 例如: public function SaveTextAsPng($fontSize, $x, $y, $textConten
警告:imagegif()[function.imagegif]:无法打开“filename2.png”以便在第144行的/www/vhosts/yourracesults.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') 您是否正确设置了输出目录的权限?我认为您的web服务器(以及带有它的php)无法写入目标文件夹。您的web用户(apache、www等)似乎没有在您尝试写入的文件夹中的写入权限。或者,如果文件已经存在,则它没有该文件的写入权限 编辑:更改权限 假设您使用的是一个类似linux的系统,带有ApacheWeb服务器,那么首先您需要找出web服务器运行的用户。您需要在服务器上获取命令shell(ssh),然后您可能会看到web服务器用户键入以下命令:
$ ps aux | grep httpd
在列表中,您将看到所有正在运行的apache进程,其用户名位于第一列
假设web用户是apache,您现在需要在该目录中授予apache写权限。您可以通过将组更改为apache并向该组授予写入权限,或者将目录的所有权更改为apache来实现这一点。假设您要更改组:
$ chgrp apache /www/vhosts/yourraceresults.com/htdocs/trial
授予所有者和组用户(apache)写权限:
$ chmod 775 /www/vhosts/yourraceresults.com/htdocs/trial
Disclamer:这是一个快速解决方案,但我对安全性知之甚少,欢迎评论 您的脚本似乎需要该目录的写入权限。更改这些权限的一个简单方法是通过FTP登录并从FTP客户端更改权限。大多数(至少是我尝试过的少数几个)FTP客户端在右键单击名为“权限”或“文件属性”(FileZilla)之类的文件夹时都会提供一个选项。它应该显示具有不同权限复选框的对话框;确保至少给予所有者写入权限。如果您在*nix主机上,您应该能够转到该目录并发出命令chmod 755。更改权限
编辑:chmod777。如果755不工作,将为您提供最大权限。输出文件夹不存在(在这种情况下,您必须创建它),或者您没有对输出文件夹的写入权限。要解决此问题,请执行以下操作:
- 如果您使用的是shell:
chmod 777/www/vhosts/yourracesults.com/htdocs/trial - 如果您使用的是FTP客户端: 右键单击“试用”文件夹,搜索名为“chmod”、“rights”、“permissions”(可能在“properties”中)的内容,然后为其授予所有权限,或者输入chmod值777