【发布时间】:2022-01-04 17:48:18
【问题描述】:
我试图在 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 的一些安全问题。
【问题讨论】:
-
首先向我们展示代码,特别提到 DocumentRoot 目录在哪里以及您尝试放置上传文件的位置以及 DocumentRoot 与其他目录之间的关系
-
@RiggsFolly 好的,当然。我在 htdocs 中的任何文件夹中都收到此错误。实际上是 XAMPP 安装在 Applications 文件夹中,这是一个原因吗?
-
'../assets/images/events/'.$new_filename这是否将您带到 DocumentRoot 之上?
标签: php file-upload permissions permission-denied move-uploaded-file