用PHP编写文件时,/opt/lamp/htdocs/中的权限被拒绝



当用户创建配置文件并上传配置文件图片时,PHP"move_uploaded_file"函数用于将此图像的临时副本移动到项目目录中。

虽然我当前的代码在我的Windows 10机器上运行得很好,但由于文件权限不正确,它在我的Mac上无法运行。

我已经尝试了其他答案中提供的方法,运行终端命令后没有任何变化:

sudo chmod 644 /opt/lampp/htdocs/yourfolder

任何变化都是如此,包括:

sudo chmod -R 777 /opt/lampp/htdocs/yourfolder

请注意,我对笔记本电脑有管理权限

其他用户表示,这些命令已经解决了他们的问题,所以我怀疑我的命令不同。

PHP代码段:

$username = $_POST["username"];
$password = $_POST["password"];
$ext = null;
/* Debugging information
echo $_FILES["profile_pic"]["name"]."<br>";
echo $_FILES["profile_pic"]["tmp_name"]."<br>";
echo $_FILES["profile_pic"]["size"]."<br>";
echo $_FILES["profile_pic"]["error"]."<br>";
*/
if (strrpos($_FILES["profile_pic"]["name"], ".jpg") != null || strrpos($_FILES["profile_pic"]["name"], ".jpeg") != null) {
$ext = ".jpg";
};
if (strrpos($_FILES["profile_pic"]["name"], ".png") != null) {
$ext = ".png";
};
$path = __DIR__ . "datausersimages\" . uniqid() . $ext;
if (move_uploaded_file($_FILES["profile_pic"]["tmp_name"], $path)) {
echo("File successfully uploaded");
} else {
echo("Upload failed");
};

返回:上传失败的

抛出错误:

move_uploaded_file(/opt/lamp/htdocs/Test Site\data\users\images\5c1dadd52bb71.jpg):无法打开流:在第27行的/opt/lampp/htdocs/Test Site/signup_confirm.php中权限被拒绝

预期:用户配置文件图片插入/htdocs/Test Site/data/users/images文件夹

实际:以上关于不正确文件权限的错误被抛出

错误的原因是我使用了不正确的目录分隔符(Mac使用的是"\"而不是"/")。更改这些选项会使配置文件图片移动到预期位置。

最新更新