嘗試使用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就可以了。。