我创建了这个简单的PHP脚本来存储使用时间戳创建的文件夹下的文件,但脚本创建了2个文件夹而不是一个。
$connection = ftp_connect($server);
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);
if (!$connection || !$login) { die('Connection attempt failed!'); }
$timestamp = strtotime(date("Y-m-d H:i:s"));
ftp_mkdir($connection, $timestamp);
$upload = ftp_put($connection, "./".$timestamp."/".$dest, $source, FTP_BINARY );
if (!$upload) { echo 'FTP upload failed!'; }
ftp_close($connection);
感谢您的帮助。
答案 0 :(得分:0)
由于您的目录命名逻辑使用时间戳,您可能会遇到上载时系统只是运行FTP逻辑两次的情况?或类似的规定。因此,请尝试使用ftp_mkdir
使用目录检查逻辑包装ftp_chdir
命令,以便仅在目录尚不存在时才创建目录:
if (!@ftp_chdir($connection, $timestamp)) {
ftp_mkdir($connection, $timestamp);
}
所以整个事情现在都是:
$connection = ftp_connect($server);
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);
if (!$connection || !$login) { die('Connection attempt failed!'); }
$timestamp = strtotime(date("Y-m-d H:i:s"));
if (!@ftp_chdir($connection, $timestamp)) {
ftp_mkdir($connection, $timestamp);
}
$upload = ftp_put($connection, "./".$timestamp."/".$dest, $source, FTP_BINARY );
if (!$upload) { echo 'FTP upload failed!'; }
ftp_close($connection);
编辑:另一个想法是只注释掉ftp_mkdir
的行,看看会发生什么:
# ftp_mkdir($connection, $timestamp);