使用GD :: Graph打印到.gif文件。权限被拒绝而写入文件
问题描述:
我用PHP编写的一个网页,需要用户输入,然后我做了shell_exec在传递这些参数后一个Perl文件。使用GD :: Graph打印到.gif文件。权限被拒绝而写入文件
我的Perl文件基本上生成GD ::图。当我第一次运行脚本时,似乎没有问题,我得到一个有效的image.gif文件。但是,再次运行它不会更改image.gif文件上的任何数据。它仍然是一样的,好像它不能被覆盖。
然后我通过shell执行Perl脚本并手动传递参数。以下是错误消息我得到:
Failed to save graph to file: uploads/image.gif. Permission denied at image.pl line 178.
Perl中的相关代码:
my $bar_file = $filepath . '/image.gif';
if (-e $bar_file) {
#If file exists, delete
unlink($bar_file);
}
else {
print "File does not exist.";
}
open(IMG, ">$bar_file")
|| die ("\nFailed to save graph to file: $bar_file. $!");
binmode IMG;
print IMG $plot->gif();
close IMG;
而问题的行178:
open(IMG, ">$bar_file")
我试图改变文件CHMOD 777,但自从其生成Apache后,我没有足够的权限来修改它。
答
你可以检查是否取消链接失败? 成功时,它返回成功删除的文件数。失败时,它返回false并设置$! (错误)。
嗨Freek:问题是与.gif文件的权限。我所做的是当我创建它时,我的CHMOD在Perl中是775,这样它就可以重写。感谢您的复制,但.. – c0d3rs 2010-11-10 16:26:18