file_put_content() 文件权限错误
Posted
技术标签:
【中文标题】file_put_content() 文件权限错误【英文标题】:file_put_content() file permission error 【发布时间】:2013-12-01 10:45:19 【问题描述】:在我的代码中,我发送 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 但它不起作用,所以我想我错过了一些东西。请帮忙,谢谢!
【问题讨论】:
【参考方案1】:好吧,只是777
与 *nix 使用的八进制表示不同。您需要添加 0
前缀以表明该数字是八进制的。
chmod($arg['org_file'], 0777);
更新
拨打->save()
也是如此:
->save($arg['org_file'], 0755);
举例说明:
777 = 1100001001 (01411)
0777 = 111111111
【讨论】:
对不起,它工作正常,然后我意识到这是我的本地项目副本。无论如何,它不工作。指示的错误没有变化。 ->save($arg['org_file'],755) 是罪魁祸首。将其更改为 0777 并且它正在工作。我只会改变一些东西。谢谢。 @MrA 我没有意识到->save()
的最后一个参数也是一个许可......我很高兴我的回答对两者都有效:)【参考方案2】:
试试chmod($arg['org_file'],0777);
【讨论】:
以上是关于file_put_content() 文件权限错误的主要内容,如果未能解决你的问题,请参考以下文章