【问题标题】:move_uploaded_file(): Unable to move '/tmp/phpiS3dQA' to '/var/www/html/mysite/uploads/PNGWallpaper.pngmove_uploaded_file():无法将“/tmp/phpiS3dQA”移动到“/var/www/html/mysite/uploads/PNGWallpaper.png”
【发布时间】:2013-03-29 11:05:00
【问题描述】:

我正在使用 Fedora 16、PHP5.x 和 Apache2.x

$target_path = "/var/www/html/mysite/uploads/";
$target_path = $target_path . basename( $_FILES['photo_video']['name']); 
if(move_uploaded_file($_FILES['photo_video']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['photo_video']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

当我尝试上传时,我总是收到消息:

警告:move_uploaded_file(/var/www/html/mysite/uploads/PNGWallpaper.png):无法打开流:/var/www/html/mysite/modules/content/cj_c.php 第 44 行的权限被拒绝调用堆栈:0.0002 132524 1. {main}() /var/www/html/mysite/index.php:0 0.0016 153684 2. include_once('/var/www/html/mysite/modules/content/cj_c.php' ) /var/www/html/mysite/index.php:36 0.0022 160500 3. move_uploaded_file() /var/www/html/mysite/modules/content/cj_c.php:44 警告:move_uploaded_file():无法移动' /tmp/phpiS3dQA' 到 /var/www/html/mysite/modules/content/cj_c.php 中的 '/var/www/html/mysite/uploads/PNGWallpaper.png' 第 44 行调用堆栈:0.0002 132524 1. { main}() /var/www/html/mysite/index.php:0 0.0016 153684 2.include_once('/var/www/html/mysite/modules/content/cj_c.php') /var/www/html/ mysite/index.php:36 0.0022 160500 3. move_uploaded_file() /var/www/html/mysite/modules/content/cj_c.php:44 上传文件出错,请重试!

文件或文件夹权限:

drwxrwxrwx. 465 root root 36864 Apr  6 23:20 tmp
drwxrwxrwx. 2 knel knel 4096 Apr  6 22:47 uploads

php.ini

file_uploads = On
max_file_uploads = 20

检查 php 运行的用户是什么

php> echo exec('whoami');
knel

谁能给我建议解决方案?

【问题讨论】:

  • 文件PNGWallpaper.png是否已经存在于uploads目录中?
  • 不,文件还没有,我要上传这个。
  • 我认为网络服务器无权将文件重新上传到此目录。可能您的路径中有错字?
  • 你能告诉我更多细节吗?谢谢

标签: php apache file-upload upload fedora


【解决方案1】:

权限被拒绝意味着运行 PHP 的用户对目标路径 (/var/www/html/mysite/uploads/) 中的目录之一没有写入权限

您可以使用this 工具检查到目标目录的完整路径的权限。

【讨论】:

  • php> echo exec('whoami');跪下
  • drwxrwxrwx。 2 knel knel 4096 Apr 6 22:47 上传
  • 你有什么想法吗?谢谢
  • 是的,您的上传目录归您的用户所有...但是,如果 'uploads' 上面的目录之一没有 +x 用户尝试写入的权限,它将失败经许可被拒绝。再次检查。
【解决方案2】:

我遇到了同样的问题。

我的解决方案:确保目标文件夹具有“x”权限(700),而不仅仅是写权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多