ftp_mkdir():无法创建目录:没有这样的文件或目录

时间:2014-04-09 10:00:07

标签: php ftp

我无法使用ftp制作远程目录。

我收到错误Warning: ftp_mkdir(): Can't create directory: No such file or directory

我正在尝试这种方式。

$connection = ftp_connect($hostname) or die('Couldn\'t connect to ftp server'); 
$login = ftp_login($connection, $username, $password) or die('Couldn\'t log_in to ftp server');
ftp_pasv($connection, true);
if ($login){echo 'Connected Successfully.';}else{echo 'Cannot connect.';}

$dir = '2014/04/09';



if(!@ftp_chdir($connection, '/public_html/images/'.$dir)){
    $ftp_mkdir = ftp_mkdir($connection, '/public_html/images/'.$dir);
    if($ftp_mkdir){
        echo 'Remote directory created successfully';
    }
    else{
        echo 'Error creating remote directory';
    }
}
else{
        echo 'Remote directory exist';
}

请参阅并建议任何可行的方法。

感谢。

2 个答案:

答案 0 :(得分:1)

在Windows中* . " / \ [ ] : ; | = ,是保留字符,并且允许在您的文件名中使用。

对于Linux,我认为它只是/\0

/字符用于遍历Linux中的文件目录,因此禁止将其用作文件名。

有关非法文件名的更多信息: http://en.wikipedia.org/wiki/Filename#Reserved%5Fcharacters%5Fand%5Fwords

您必须将/符号替换为其他内容,例如-

重播你的评论: 制作像images/2014/04/09/image.png

这样的目录

您只需在服务器上创建文件夹即可。所以images/2014/04/09/image.png是一个名为image.png的文件,位于文件夹09内的文件夹04内,该文件夹位于文件夹2014images

希望制作场景?

答案 1 :(得分:1)

遇到类似的问题,并通过一次创建一个文件夹来解决。我无法让ftp_chdir在单个命令上创建整个路径。

所以要创建它:

$dir = '2014/04/09';

我必须先创建:

$dir = '/2014/';

然后:

$dir = '/2014/04/';

最后:

$dir = '/2014/04/09/';

然后提交文件“ /2014/04/09/image.jpg”。

像魅力一样工作。