【问题标题】:file_put_content() file permission errorfile_put_content() 文件权限错误
【发布时间】: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 但它不起作用,所以我想我错过了一些东西。请帮忙,谢谢!

【问题讨论】:

    标签: php file-upload file-permissions


    【解决方案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);

    【讨论】:

      猜你喜欢
      • 2014-07-14
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多