как перезаписать папку / файл, если существует через php ftp, используя ftp_put . по умолчанию не переписываются файлы.
function ftp_putAll($conn_id, $folder, $remotedir) { // Called from moveFolder function at line 161 // $d = dir($folder); while($file = $d->read()) { // do this for each file in the directory if ($file != "." && $file != "..") { // to prevent an infinite loop if (is_dir($folder."/".$file)) { // do the following if it is a directory if (!@ftp_chdir($conn_id, $remotedir."/".$file)) { ftp_mkdir($conn_id, $remotedir."/".$file); // create directories that do not yet exist } $stream_options = array('ftp' => array('overwrite' => true)); $this->ftp_putAll($conn_id, $folder."/".$file, $remotedir."/".$file); // recursive part } else { if(ftp_put($conn_id, $remotedir."/".$file, $folder."/".$file, FTP_ASCII)) { $upload = ftp_put($conn_id, $remotedir."/".$file, $folder."/".$file, FTP_ASCII); }
else {
}}
Это будет зависеть от реализации FTP-сервера. Если перезапись файла не разрешена, сначала удалите файл перед загрузкой.
function ftp_putAll($conn_id, $src_dir, $dst_dir){ $d = dir($src_dir); while($file = $d->read()) { // do this for each file in the directory if ($file != "." && $file != "..") { // to prevent an infinite loop if (is_dir($src_dir."/".$file)) { // do the following if it is a directory if (!@ftp_chdir($conn_id, $dst_dir."/".$file)) { ftp_mkdir($conn_id, $dst_dir."/".$file); // create directories that do not yet exist } ftp_putAll($conn_id, $src_dir."/".$file, $dst_dir."/".$file); // recursive part } else { @ftp_put( $conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY); } } } $d->close(); }
вы можете попробовать этот выше код.
Ниже приведены параметры функции
идентификатор соединения, путь источника, путь назначения