Estimado:
Yo tambien tenia problemas para subir un archivo a un sitio ftp.
pero lo he podido solucionar. te dejo de ejemplo el codigo que use.
Código PHP:
<?php
$ftp = array(
'user' => 'usuario',
'pass' => 'password',
'host' => 'ftp.tusitio.com',
'dest' => '/base_resultante/', //directorio
'mode' => 'I',
'overwrite' => (bool)1 // sobre escritura 1 si 0 no
);
$handle = ftp_connect($ftp['host'], 21, 30);
if (!$handle)
{
$error_ftp = "La conexion al sitio ftp no se pudo realizar correctamente, intente nuevamente.";
}
else
{
$res = ftp_login($handle, $ftp['user'], $ftp['pass']);
if (!$res)
{
$error_ftp = "El login o la clave del ftp no es correcta, favor comunicar al administrador del sitio";
}
else
{
echo "Se Conecto Bien al FTP";
ftp_pasv($handle, true);
$erg = ftp_chdir($handle, $ftp['dest']);
if (!$erg)
{
$error_ftp = "No puedo cambiar de directorio en el ftp.";
}
else
{
$repositorio = "archivos";
//Nombre de Carpeta Origina
$archivito = "PRUEBA.txt";
//nombre del Archivo
$local_file = getcwd()."/".$repositorio."/".$archivito;
$remote_file = $archivito;
$mode = ($ftp['mode'] == 'I') ? FTP_BINARY : FTP_ASCII;
if (function_exists('ftp_nb_put'))
{
$res = ftp_nb_put($handle, $remote_file,$local_file, $mode);
$h = ".";
while ($res == FTP_MOREDATA)
{
$res = ftp_nb_continue($handle);
}
}
else
{
$res = ftp_put($handle, $remote_file, $local_file,$mode);
}
if (!$res)
{
$error_ftp = "El Archivo '$local_file' no pudo ser subido al servidor.";
///NET_FTP_ERR_UPLOADFILE_FAILED
}
}
}
$res = ftp_close($handle);
}
?>
Saludos Patux