1

这是我的代码;显然,我已经重命名了目录。;)

$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

任何帮助将不胜感激,我必须在星期四之前完成这个应用程序 - 这个文件上传部分是最后一点!

谢谢!

4

2 回答 2

3

PHP 找不到要在其中创建其他目录的目录。

您需要将$recursive参数设置为 true:

mkdir($thepath, 0777, true);
于 2012-09-25T09:19:02.520 回答
0

也许您也想尝试mkdir($path,$mode,true)创建缺失的链接?

于 2012-09-25T09:18:53.283 回答