PHP is_dir无法识别它创建的目录

时间:2015-06-07 21:08:28

标签: php

我有一个用于将文件上传到服务器的PHP脚本。为了我自己的内部便利,文件将按提交者的名称进行排序。我的脚本检查目标目录是否存在,如果不存在,则会创建目录。因此:

$abort = false;
$targetDir = 'uploads/' . $userName;
if (!is_dir($targetDir)) {
    if(!mkdir($targetDir)) {
        echo '<p>Can''t create ' . $targetDir . '</p>';
        $abort = true;
    }
}
if (!$abort) {
    move_uploaded_file(...)
}

我第一次访问此代码时(当目标目录不存在时),它正常运行,创建所需的目标目录,并将上传的文件移动到所需的目录。

随后的每一次,我都会打不开......不能创造......&#34;错误。

使用我的FTP客户端,我可以看到目标目录已经创建,权限为0755,因此任何用户都应该有权至少查看该文件(并不是因为相同的&#34;用户& #34;创建文件(PHP伪用户)是用户试图访问它。

为什么没有&#34; is_dir&#34;识别这个新创建的目录?

2 个答案:

答案 0 :(得分:1)

你的回音中有语法错误:修复了这里......

    $abort = false;
    $targetDir = 'uploads/' . $userName;
    if (!is_dir($targetDir)) {
        if(!mkdir($targetDir)) {
            echo "<p>Can't create " . $targetDir . "</p>";
            $abort = true;
        }
    }
    if (!$abort) {
        move_uploaded_file(...)
    }

答案 1 :(得分:-1)

我的实际代码包含一个愚蠢的拼写错误,这意味着我实际上并没有检查$ targetDir的存在,我正在检查$ targeDir的存在。我真的希望PHP能够关闭自动变量。