PHP: move_uploaded_file(): Unable to move

2020-06-08 14:53发布

问题:

I keep getting this error on a new server I just setup

[Wed Feb 16 22:46:51 2011] [error] [client 71.1.236.114] PHP Warning:  
move_uploaded_file(upload/110216104651_00134_smooth_1440x900.jpg): 
failed to open stream: Permission denied in /var/www/admin/_application/models/Roles.model on line 1757, 
referer: http://nacc.biz/admin/admin/modifyarticle.php?roleid=4
[Wed Feb 16 22:46:51 2011] [error] [client 71.1.236.114] PHP Warning:  move_uploaded_file():
Unable to move '/tmp/php6wlOg1' to    'upload/110216104651_00134_smooth_1440x900.jpg' 
in /var/www/admin/_application/models/Roles.model on line 1757, referer:
http://nacc.biz/admin/admin/modifyarticle.php?roleid=4
[Wed Feb 16 22:46:51 2011] [error] [client 71.1.236.114] PHP Notice:  
Upload Error: Error moving from temp dir in /var/www/admin/_application/models/Roles.model on line 1759,
referer: http://nacc.biz/admin/admin/modifyarticle.php?roleid=4

I added 777 and created a uploads dir, but the error persists. How do I find the path that needs to either be corrected or created?

回答1:

Change owner of upload/ to www-data:www-data and also chmod to 755



回答2:

Looks like it doesn't know where upload/ is. Make sure you have the full path in your statement. For example, if upload directory is actually located in /var/upload, then make sure that is in your statement, not just upload/.



回答3:

Log into your ftp and confirm the following:

  • The folder exists, check for spellings
  • Check the properties of the folder and make sure the permissions have read+write 0666
  • Make sure the file is within your public html root, otherwise double check the owner of the file, and make sure PHP Has read / write access to it.

looking at the log:

Unable to move '/tmp/php6wlOg1' to    'upload/110216104651_00134_smooth_1440x900.jpg' 

It seems to me that its looking in your root directory as upload/110216.... should be path.to/public_html/upload/110216....

If none of the above work, please post your line of code that has move_uploaded_file on.



回答4:

It's trying to move the file to upload/ not uploads/, make sure the directory exists and is writable.



回答5:

Provided, there are no spelling mismatches, give your upload directory (that directory ONLY) all user rights sudo chmod a+rwx /path/to/folder, that should fix the problem easily.
For a quick further read about permissions in Ubuntu, check here.