我正在使用类似博客的网站进行编码,并具有正确发布和显示帖子的功能。目前,我正在尝试通过使用PHPmove_uploaded_file函数将图像上载到项目文件夹中的文件夹中,以添加一个将图像包含在帖子中的选项。
我已通过授予Apache用户_www的读取,写入和执行权限chmod。我还确保了它有权在导致上载文件夹本身的父目录中进行写入,读取和执行。
我什至尝试使用将项目文件夹的完全所有权转让给所述用户chown。但是,我收到了一个PHP警告,内容为:
PHP警告:move_uploaded_file(/ Users / MyUser / Desktop / Project / assets / php /../ uploads / 2.jpg):无法打开流:/ Users / MyUser / Desktop / Project / assets / php / upload中的权限被拒绝.php文件
的PHP
$target_dir = __DIR__ . "/../uploads/";
var_dump($target_dir);
$file = basename($_FILES["file"]["name"]);
$target_file = $target_dir . $file;
$allowed_extensions = array("jpeg", "jpg", "png");
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
if(isset($_POST["upload"])) {
echo $target_file;
$stmt = $pdo->prepare("INSERT INTO images (imgTitle, imgLocation) VALUES (:imgTitle, :imgLocation)");
$stmt->execute(array(
":imgTitle" => basename($_FILES["file"]["name"]),
":imgLocation" => $target_file
));
if ($imageFileType = in_array($imageFileType, $allowed_extensions)) {
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
}
}
的HTML
<form action="" method="post" enctype="multipart/form-data">
Select Image File to Upload:
<p><input type="file" name="file"></p>
<input type="submit" name="upload" value="Upload">
</form>
为什么会发生这种情况,如何在不将_www用户更改为我的用户的情况下解决此问题?