Código:
<?php $ftp_server = "miservidor"; $ftp_user_name = "usuario"; $ftp_user_pass = "contraseña"; ob_end_flush(); $remote_file = 'nombre del archivo subido'; $local_file = 'nombre del archivo a subir'; $fp = fopen($local_file, 'r'); $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); $ret = ftp_nb_fput($conn_id, $remote_file, $fp, FTP_BINARY); while ($ret == FTP_MOREDATA) { if(!isset($conn_id2)) { $conn_id2 = ftp_connect($ftp_server); $login_result2 = ftp_login($conn_id2, $ftp_user_name, $ftp_user_pass); } if(isset($conn_id2)) { clearstatcache(); $remote_file_size = ftp_size($conn_id2, $remote_file); } $local_file_size = filesize($local_file); if (isset($remote_file_size) && $remote_file_size > 0 ){ $i = ($remote_file_size/$local_file_size)*100; printf("%d%% subido", $i); echo '<br>'; flush(); } $ret = ftp_nb_continue($conn_id); } if ($ret != FTP_FINISHED) { print("Hubo un error subiendo el archivo...<br>"); exit(1); } else { print("terminado.<br>"); } fclose($fp); ?>