gpt4 book ai didi

php - move_uploaded_file 将文件放在目标目录之外

转载 作者:行者123 更新时间:2023-11-29 05:34:47 24 4
gpt4 key购买 nike

我目前有以下内容:

    if (in_array($_FILES['userfile']['type'], $mimeTypes))
{

$target_path = "./uploads/{$_SESSION['email']}";

$target_path = $target_path . basename( $_FILES['userfile']['name']);

if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['userfile']['name']).
" has been uploaded";

} else{
echo "There was an error uploading the file, please try again!";
}

当有人创建登录名时,会使用他们的电子邮件和 0666 权限为用户创建一个目录。

目前,move_uploaded_file() 将文件放置在用户目录之外的上传目录中。正在抛出错误。我已经多次检查我的相对路径是正确的。

我使用的是 Ubuntu,上传的文件上有一个锁定符号,但允许我拖放到用户的文件夹中。

最佳答案

您的 $target_path 似乎在用户目录后缺少一个 /,因为 basename() 的输出不包含一个/.

// Append trailing slash
$target_path = "./uploads/{$_SESSION['email']}/";
$target_path = $target_path . basename( $_FILES['userfile']['name']);

目录的正确权限应该是 0755(您不希望它是世界可写的!),因为目录应该具有文件系统遍历的执行权限。您可以将其设为组可写 (0775),并确保上传目录的组设置为 Apache Web 服务器用户。这最好通过在 uploads/目录上设置 setgid 并将其组设置为 apache 用户来完成,因此使用在其下创建的目录继承正确的写入权限而不是全局可写的。

关于php - move_uploaded_file 将文件放在目标目录之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com