PHP

时间:2017-02-08 12:53:37

标签: php permissions centos chmod mkdir

我的脚本为用户上传的照片生成目录,但生成的目录的权限显示为r----x--t,即使我在php中指定了777

if (!is_dir($dir.$new_id)) {
    $new_dir = $dir.$new_id.'/';
    mkdir($new_dir, 777, true);
    $thumbnail_dir = $new_dir.'thumbnail/';
    if (!is_dir($thumbnail_dir)) {
        mkdir($thumbnail_dir, 777, true);   
    }
}

我应该提一下,我正在使用运行centos OS的hostinger免费帐户。

1 个答案:

答案 0 :(得分:0)

将umask暂时设置为零,umask充当应用程序无法在文件上设置的一组权限。资料来源:http://php.net/manual/en/function.umask.php

  $old = umask(0);
  if (!is_dir($dir.$new_id)) {
      $new_dir = $dir.$new_id.'/';
      mkdir($new_dir, 0777, true);
      $thumbnail_dir = $new_dir.'thumbnail/';
      if (!is_dir($thumbnail_dir)) {
          mkdir($thumbnail_dir, 0777, true);   
      }
  }
  umask($old);
  if ($old != umask()) {
     die('An error occurred while changing back the umask');
  }