Php ftp_mkdir():Can';t创建目录:没有这样的文件或目录
我在使用ftp创建远程目录时遇到问题 我收到错误,警告:ftp_mkdir():无法创建目录:没有这样的文件或目录 我正试着这样做Php ftp_mkdir():Can';t创建目录:没有这样的文件或目录,php,ftp,Php,Ftp,我在使用ftp创建远程目录时遇到问题 我收到错误,警告:ftp_mkdir():无法创建目录:没有这样的文件或目录 我正试着这样做 $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_pas
$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';
}
请查看并建议任何可能的方法
谢谢。在Windows中*。“/\[]:;|=,
是保留字符,不允许在文件名中使用
对于Linux,我认为它只是/
和\0
/
字符用于遍历Linux中的文件目录,因此禁止将其用作文件名
有关非法文件名的详细信息:
您必须将/
符号替换为其他符号,例如-
在重播您的评论时:
创建类似于images/2014/04/09/image.png的目录
您只需要在服务器上创建文件夹。因此images/2014/04/09/image.png
是一个名为image.png
的文件,它位于文件夹09
中,文件夹04
中,文件夹2014
中,文件夹images
希望生成场景?也有类似的问题,可以通过一次创建一个文件夹来修复。我无法通过一个命令让ftp\u chdir创建整个路径
因此,要创建这个:
$dir = '2014/04/09';
我必须首先创建:
$dir = '/2014/';
然后:
最后:
$dir = '/2014/04/09/';
然后提交文件“/2014/04/09/image.jpg”
工作起来很有魅力。不确定您使用的是什么操作系统,但在Windows上,您不能使用带有“/“名称中的字符。@Scott我在windows7上使用linux主机。是的,我认为不允许在文件名中使用该字符。尝试更改$dir='2014/04/09'代码>至$dir='2014-04-09'代码>@Scott我得到的目录是images/2014-04-09,但问题是我想把目录变成images/2014/04/09/image.png,我该怎么做。仅供参考。。。你说你只需要在服务器上创建文件夹?我必须手动创建文件夹吗?或者我可以使用ftp创建它。您可以。。。但是从外观上看,您正在遵循一些日期命名约定,因此您可能希望自己编写一个PHP脚本来处理这个问题。因此,脚本将获得今天的日期,然后检查是否已经有今年的文件,然后是月,然后是天,如果在这些目录中找不到文件,则创建一个文件。你的意思是说我必须一个接一个地创建这些目录。比如先创建年目录,然后创建月目录,然后创建日期目录,然后创建文件。是的,要获得这样的目录images/2014/04/09/image.png
,因为文件名不能使用/
字符。好的,我想我必须使这些目录一个接一个,因为有命名限制。谢谢你花时间解释。
$dir = '/2014/04/09/';