0

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

move_uploaded_file  - Failed to open stream: Permission denied  

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

这是我用于上传的代码:

    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 的一些安全问题。

4

1 回答 1

0

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

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

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

在您的文档根目录。

www-data 组,Apache2.4 需要用户 - 请参阅手册中的设置。

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

并且:您永远不应该使用 XAMPP 来生产!

于 2022-01-04T17:57:30.460 回答