我目前的目录结构如下:
C:\xampp\htdocs\PHP_Upload_Image_MKDIR
换句话说,根本不存在以下目录。
C:\xampp\htdocs\PHP_Upload_Image_MKDIR\uploaded
C:\xampp\htdocs\PHP_Upload_Image_MKDIR\uploaded\s002
问题是当我运行以下脚本时,函数is_dir总是返回TRUE。
根据手册http://us2.php.net/manual/en/function.is-dir.php is_dir:如果文件名存在且为目录,则返回TRUE,否则返回FALSE。
我在这里想念一下吗?
谢谢
$userID = 's002'; $uploadFolder = '/PHP_Upload_Image_MKDIR/uploaded/'; $userDir = $uploadFolder . $userID; echo '<br/>$userDir: ' . $userDir . '<br/>'; if ( is_dir ($userDir)) { echo "dir exists"; // always hit here!!! } else { echo "dir doesn't exist"; } mkdir($userDir, 0700);
C:\xampp\htdocs\PHP_Upload_Image_MKDIR>dir /ah
Volume in drive C is System
Volume Serial Number is 30B8-2BB2
Directory of C:\xampp\htdocs\PHP_Upload_Image_MKDIR
File Not Found
C:\xampp\htdocs\PHP_Upload_Image_MKDIR>
//////////////////////////////////////////////////////////
根据Artefacto的评论:
Here is the output of C:\PHP_Upload_Image_MKDIR\uploaded\s005
echo '<br/>' . realpath($userDir) . '<br/>';
感谢您提供解决方案。
祝福
答案 0 :(得分:1)
尝试使用file_exists()。
答案 1 :(得分:1)
如果您多次运行该脚本,那么is_dir($userDir)
将返回true
因为您的脚本中的这一行(最后一行):
mkdir($userDir, 0700);
您可以使用rmdir()或其他方法将其删除。
要测试is_dir()
,请尝试从未使用/创建的目录名称。像下面这样的东西应该返回false,当它发生时,你知道is_dir()
有效:
if ( is_dir ("/PHP_Upload_Image_MKDIR/uploaded/lkjlkjlkjkl"))
答案 2 :(得分:1)
此外,您正在检查的目录似乎是PHP_Uploaded_Image_MKDIR/uploaded/s002
,这是从根文件系统开始的绝对路径。
尝试将C:\xampp\htdocs\
添加到此前,然后查看它是否有效。另外,检查文件夹是否存在于卷的根目录下。