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 生产力 !!!
我试图在 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 生产力 !!!