move_uploaded_file 无法打开流:权限在 XAMPP MacOS 中被拒绝

move_uploaded_file Failed to open stream: Permission denied in XAMPP MacOS

我试图在 MacOS 上使用 XAMPP 使用 php 将文件上传到本地。每当我尝试通过脚本上传文件时,我都会遇到错误。

move_uploaded_file  - Failed to open stream: Permission denied  

所以我尝试了一些我在网上看到的修复方法,比如 chmod -R 777 ,更改用户组并尝试为每个用户授予读写权限; None 他们工作了。

这是我用于上传的代码:

    if(!empty($filename)){
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        $new_filename = $slug.'_'.time().'.'.$ext;
        if(!move_uploaded_file($_FILES['eventImage']['tmp_name'], '../assets/images/events/'.$new_filename))
        {
            $_SESSION['error']='<strong>Error!</strong> Uploading Image failed. Please try again.';
        }   
    }
    else{
        $new_filename = '';
    }

我想知道如何修复这个错误。我认为这是 MacOS 的一些安全问题。

就像在 nix 下一样,您可以尝试(正在测试中 - 不是生产性服务器): chmod -R 755 ./.* chmod +x ./.

其中 ./ 是 HTML 文件的文档根目录(不要将其用作 root/admin !!!) 参数 -R 代表“递归操作” - 因此它将尝试包含 ./

下的所有子目录

和: chown -R www-data:www-data ./.

在您的文档根目录。

www-数据组,Apache2.4 需要用户 - 参见手册中的设置。

组和用户 www-data 在 *nix 等操作系统下很重要。 在 Windows 下,您必须以管理员权限启动 XAMPP。 所以请注意!!!

并且:你永远不应该使用 XAMPP 生产力 !!!