chmod文件夹,使其在php中可供服务器写入

chmod文件夹,使其在php中可供服务器写入,php,Php,我试图通过PHP表单在服务器上上传一个文件。数据是所有工作发现广告在数据库中获得图像名称完美,但问题是,我并没有得到服务器上的图像 我在谷歌上搜索发现DIR是不可写的。我检查了以下代码: $image_folder = $destination_folder . $new_file_name; if ( ! is_writable(dirname($image_folder))) { echo dirname($newFileName) . ' must writable!!!'

我试图通过PHP表单在服务器上上传一个文件。数据是所有工作发现广告在数据库中获得图像名称完美,但问题是,我并没有得到服务器上的图像

我在谷歌上搜索发现DIR是不可写的。我检查了以下代码:

$image_folder   = $destination_folder . $new_file_name;
if ( ! is_writable(dirname($image_folder))) {
      echo dirname($newFileName) . ' must writable!!!';
} 
然后,为了更改权限,我尝试使用chmod(“$destination\u folder”,0777),但突然想到我应该给服务器上的所有人授予写权限


理想情况下,答案是“否”,但我如何处理它?

您可以授予权限755

7       5     5
user   group  world
r+w+x  r+x    r+x
4+2+1  4+0+1  4+0+1  = 755

你必须知道谁是主人。默认设置使创建文件夹的人有意义

  • 如果php创建文件夹,您可以使用755(php用户是所有者:前7个=所有者的完全权限)(推荐)

  • 例如,如果ftp用户是所有者,则仅通过php用户以755权限上传目录是不够的:php用户没有写入权限


可能不是您想要的答案,但是如果您发现PHP无法将文件写入文件系统中的任何位置,并且无法为上载创建目录,您可以始终将图像存储在数据库中,但是如果服务器帐户无法写入目录,我希望服务器帐户不允许更改权限以允许其写入目录。否则unix就没有大家想象的那么安全了。你不需要xx77,只需要0755,如果只有Web服务器UID需要访问,甚至需要0700。只有当php是目录的所有者时,这才有效!见下面我的答案。