在我的代码中,我发送了url编码图像,并使用file_out_content将其转换为文件。
if(file_put_contents($arg['org_file'],$decodeData))
{
chmod($arg['org_file'],777);
$arg = Model_Photo::_convert_png_to_jpg($arg);
//reduce file
\Fuel\Core\Image::load($arg['org_file'])
->config('quality',80)
->resize($arg['width'])
->save($arg['org_file'],755);
当我执行上面的代码时。带有Image :: Load的部分我得到了这个错误。
Fuel\Core\PhpErrorException [ Warning ]:
getimagesize(/www/my.website.com/public/uploads/2013-11-18/4511582301f8b92b08aad0b8e.jpg): failed to open stream: Permission denied
您可以看到我将创建的文件chmod为777,但查看控制台的权限不是777。
--wxrw--wt 1 apache apache 291301 Nov 18 18:07 4511582301f8b92b08aad0b8e.jpg
缺少读取会使我对文件操作造成问题。我做了chmod,但是没有用,所以我觉得我错过了什么。请帮助,谢谢!
答案 0 :(得分:4)
嗯,只是777
与* nix使用的八进制表示不同。您需要添加0
前缀以指示该数字应为八进制。
chmod($arg['org_file'], 0777);
<强>更新强>
同样适合您致电->save()
:
->save($arg['org_file'], 0755);
举例说明:
777 = 1100001001 (01411)
0777 = 111111111
答案 1 :(得分:2)
尝试chmod($arg['org_file'],0777);