Вот мой PHP-код. Он фактически отлично работает:php ftp сделать несколько каталогов
$newftpdir_parent = date('Ymd'); // YYYYMMDD
$newftpdir_child = $ext_folder; // username
$newftpdir = $newftpdir_parent.'/'.$newftpdir_child; // YYYYMMDD/username
$conn_id = ftp_connect($uptoftp_server);
ftp_login($conn_id, $uptoftp_username, $uptoftp_pass);
$path_of_storage = $uptoftp_path_abs.'/'.$uptoftp_path_rel; // /var/www/uploads
if([email protected]_chdir($conn_id, $path_of_storage.'/'.$newftpdir_parent)){
ftp_mkdir($conn_id, $path_of_storage.'/'.$newftpdir_parent);
ftp_chmod($conn_id, 0777, $path_of_storage.'/'.$newftpdir_parent);
}
if([email protected]_chdir($conn_id, $path_of_storage.'/'.$newftpdir)){
ftp_mkdir($conn_id, $path_of_storage.'/'.$newftpdir);
ftp_chmod($conn_id, 0777, $path_of_storage.'/'.$newftpdir);
}
ftp_chdir($conn_id, $path_of_storage.'/'.$newftpdir);
ftp_put($conn_id, $file_name, $filetoftp, FTP_ASCII);
ftp_close($conn_id);
Он загружает файл с локального сервера на удаленные ftp-серверы. Как вы можете сказать, есть 2 безобразных условия, которые проверяют, существует ли каталог, если мы не создаем его и не переместим в него. И снова для subdir. Поскольку теперь я хочу, чтобы мои каталоги (на ftp-серверах) выглядели как YYYY/MM/DD/username вместо YYYYMMDD/username, мне нужно будет создать еще два из этих блоков if. Он отлично работает, но он не выглядит чистым, я немного маньяк об этом ... Мне было интересно, есть ли лучший способ сделать это, поскольку ftp_mkdir() не может создавать несколько dirs (dir с subdirs в нем)?
для Exemple, принимая во внимание только/загрузки/реж существует, но не/2013/ни подкаталогов/06/и/11 /:
ftp_mkdir($conn_id, '/var/www/uploads/2013/06/11');
возвращается:
Warning: ftp_mkdir() [function.ftp-mkdir]: /var/www/uploads/2013/06/11: No such file or directory in /home/blabla/www/test.php on line 18
отличная функция, окна позволяют создавать сразу несколько папок/папку/подпапку/etc, но Linux не работает, эта функция идеально подходит для нее – user1620090