php上传文件时出现错误:failed to open stream: Permission denied

时间:2023-03-08 19:39:58
php上传文件时出现错误:failed to open stream: Permission denied

尝试使用php写了一段小的上传程序,但是在使用的时候,在上传文件时出现这个错误,由于之前在写程序要读文件,曾经出现过这个问题,当时是因为要读的文件的权限不够,于是使用chmod 775 1.txt把文件的权限修改之后就可以了。

上传文件的程序再一次遇到这个问题,开始认为是上传的文件没有权限,按照上面的方式对文件进行了权限修改,但是修改完成之后再试,还是出现这个问题:

Warning: move_uploaded_file(123.txt): failed to open stream: Permission denied in /Users/xuxiaodong/PhpstormProjects/php_execise/upload_file.php on line 23

Warning: move_uploaded_file(): Unable to move '/private/var/tmp/phpsdHjEX' to '123.txt' in /Users/xuxiaodong/PhpstormProjects/php_execise/upload_file.php on line 23
Stored in: upload/123.txt

搞了很久,查了很多。。最后终于发现是上传文件保存的文件夹的权限的问题,因为上传文件首先是作为临时文件存储,然后使用move_uploaded_file()将文件移动到保存的文件夹,而保存的文件夹没有写入的权限,故出现这个问题。。

解决的办法是将上传文件要保存的文件夹修改权限,chmod 757 upload就可以了。。