Este codigo me funciona:
Código PHP:
$host="";
$login="";
$password="";
$ftp=ftp_connect($host) or die ("no puedo conectar");
ftp_login($ftp,$login,$password) or die ("Conexión rechazada");
//te ubicas sobre el directorio a subir tus archivos
@ftp_chdir($ftp,"htdocs/");
//nuevo nombre (en este caso le pondra el mismo nombre)
//ftp_pwd($ftp) esto contiene el nombre de la carpetas donde te has ubicado + el nombre del archivo
$new_name = ftp_pwd($ftp)."/". $_FILES['archivo']['name'];
//finalmente lo subes
//fijate esto FTP_BINARY (segun los que saben, causa menos problemas)
$result = ftp_put($ftp, $new_name, $temp_name, FTP_BINARY);