Función que envia un archivo a un servidor ftp. los nombres de los parametros son suficientemente explicativos. Algunos parametros pueden ser omitidos (ver el código fuente)
Ejemplo de uso:
Código:
if (ftp_upload_file('ftp.microsoft.com','bill','12345','./pepino.jpg','ballmer.jpg','/home/bill'))
echo 'pepino enviado';
La función:
Código:
function ftp_upload_file($ftp_server,$ftp_user_name,$ftp_user_pass,$source_file,$destination_file,$remote_dir) {
$msgdebug=false;
$result=false;
if (!$source_file)
{
echo "No se ha especificado un nombre de archivo<br>";
Return $result;
}
if (!$destination_file) $destination_file=$source_file;
if (!$ftp_server) $ftp_server='localhost';
if (!$ftp_user_name) $ftp_user_name='anonymous';
if (!$ftp_user_pass) $ftp_user_pass='yo@mail.com';
echo "Intentando conectar con <I>$ftp_server</I>.<br>";
$conn_id = ftp_connect($ftp_server);
if (!$conn_id)
{
if ($msgdebug) echo "No se pudo conectar con <I>$ftp_server</I><br>";
else echo "No se pudo conectar con el servidor ftp<br>";
}
else
{
echo "Conectado.<br>";
if ($msgdebug) echo "Enviando nombre de usuario <I>$ftp_user_name</I> y contraseña.<br>";
$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if ((!$conn_id) || (!$login_result))
{
if ($msgdebug) echo "No se pudo conectar como <I>$ftp_user_name</I><br>";
else echo "Acceso denegado al servidor ftp<br>";
}
else
{
if ($msgdebug) echo "Usuario <I>$ftp_user_name</I> <font color='#00F03D'><b>OK</b></font><br>";
else echo "Usuario FTP </I> <font color='#00F03D'><b>OK</b></font><br>";
if ($remote_dir)
{
if ($msgdebug) echo "Cambiando al directorio <I>$remote_dir</I>..";
else echo "Cambiando al directorio remoto..";
if (!@ftp_chdir($conn_id,$remote_dir))
{
$bad_dir=true;
echo "..<font color='red'><b>!</b>Aceso denegado!</b></font><br>";
}
else
echo "..<font color='#00F03D'><b>OK</b></font><br>";
}
if (!$bad_dir)
{
echo "Enviando archivo <I>$source_file</I>.. ";
$upload = @ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
if (!$upload)
echo "..<font color='red'><b>!</b>Error subiendo archivo<b>!</b></font><br>";
else
$result=true; echo "..guardado como $destination_file<font color='#00F03D'><b>OK</b></font><br>";
}
if (function_exists("ftp_close")) ftp_close($conn_id); else ftp_quit($conn_id);
}
Return $result;
}
}