使用move_uploaded_file();权限被拒绝

时间:2017-01-26 02:31:13

标签: php permissions upload centos7 denied

我收到错误:

  

警告:move_uploaded_file(/var/www/html/images/content/1485397694.JPG):无法打开流:第48行/var/www/html/content/admin.blog.edit.php中的权限被拒绝

当我尝试上传图片时。

/ var / www / html / images文件夹具有权限777,但它仍然无法解决此问题。我现在搜索了几个小时但又无法进一步了。

    $newfilename = round(microtime(true)).'.'.end($temp);
if (file_exists("/var/www/html/images/content/".$newfilename)) {
  $file_exists = 1;
} else {
  if (!move_uploaded_file($_FILES["file"]["tmp_name"], "/var/www/html/images/content/".$newfilename)) {
    $upload_failed = 1;
  }
}

这是ps aux | grep httpd:

root       836  0.0  1.4 628300 28116 ?        Ss   04:02   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1048  0.0  0.5 628564 10216 ?        S    04:02   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1052  0.0  0.7 631208 14260 ?        S    04:02   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1168  0.0  0.7 631392 14592 ?        S    04:02   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1169  0.0  0.4 628436  9780 ?        S    04:02   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1234  0.0  0.4 628436  9780 ?        S    04:13   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1235  0.0  0.6 631360 13428 ?        S    04:13   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1236  0.0  0.6 631208 13544 ?        S    04:13   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1237  0.0  0.6 631180 13996 ?        S    04:13   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1288  0.0  0.4 628436  9780 ?        S    04:17   0:00 /usr/sbin/httpd -DFOREGROUND
apache    1298  0.0  0.4 628300  8812 ?        S    04:20   0:00 /usr/sbin/httpd -DFOREGROUND
root      1303  0.0  0.0 112668   964 pts/1    R+   04:24   0:00 grep --color=auto httpd

2 个答案:

答案 0 :(得分:1)

仅仅因为您的/ images文件可能具有正确的权限并不一定意味着您正在将图像移动到的/ images / content文件具有正确的权限。尝试直接更改要将文件移动到的文件夹,而不仅仅是父级旧文件夹。

答案 1 :(得分:0)

您正在测试

file_exists("/var/www/html/images/content/".$newfilename)

然后尝试在文件不存在时移动它。错误在您的条件逻辑中。试图移动,

if (!move_uploaded_file($_FILES["file"]["tmp_name"], "/var/www/html/images/content/".$newfilename)) {
    $upload_failed = 1;
}
应将

移动到文件所在的子句。