【问题标题】:Permission denied with move_uploaded_file();使用 move_uploaded_file() 拒绝权限;
【发布时间】:2017-01-26 02:31:12
【问题描述】:

我得到错误:

警告: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

【问题讨论】:

标签: php upload centos7


【解决方案1】:

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

【讨论】:

  • 也有777权限
【解决方案2】:

你正在测试

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;
}

应移至文件所在的子句。

【讨论】:

  • 好的,但还是不上传文件。
猜你喜欢
  • 2012-07-27
  • 2012-07-07
  • 2021-04-29
  • 1970-01-01
  • 2012-05-03
  • 2015-11-02
  • 2023-03-18
  • 1970-01-01
  • 2013-06-19
相关资源
最近更新 更多