【发布时间】:2012-09-16 18:50:08
【问题描述】:
这是我的代码;显然,我已经重命名了目录。 ;)
$thepath = "/var/www/vhosts/sub.domain.co.uk/web/apps/storage/".$userclient."/evidence/".$scid."/".$doctype."/";
$testdir = is_dir($thepath);
if ($testdir == false) {
mkdir($thepath, 0777);
}
在这种情况下,以下变量适用;
$userclient = '000';
$scid = '9263';
$doctype = 'Insurance Policy';
所以,路径应该是;
/var/www/vhosts/sub.domain.co.uk/web/apps/storage/000/evidence/9263/Insurance Policy/
我知道这是可行的,在我的代码中的其他任何地方,我都有其他应用程序使用几乎相同的设置。但是上面的那个似乎在 /evidence/ 上出错了 - 它将权限设置为 755,但是如果我将证据设置为 777(八进制),那么每次运行代码时都会创建目录。
我收到以下错误消息;
if (!@mkdir($thepath)) {
$error = error_get_last();
echo $error['message'];
}
mkdir(): No such file or directory
任何帮助将不胜感激,我必须在星期四之前完成这个申请 - 这个文件上传部分是最后一点!
谢谢!
【问题讨论】:
-
它很有可能在空间上掉下来......
-
这是不可能的,其他代码区域中的路径运行完美,并且运行完美 - 其中也有空格(URL 回读用 %20 替换空格 - 这很好 ^^)跨度>
-
但是你的 PHP 代码没有把空格变成 %20.. 我个人会用反斜杠转义空格。
-
感谢 cmets BugFinder,我现在可以根据设置递归使用它。多年来,我一直在目录中使用空格,而且它总是工作得很好,所以我从不为多余的位而烦恼;P