ftp.php
Código PHP:
<?
# FUNCIONES FTP
# CONSTANTES
# Cambie estos datos por los de su Servidor FTP
define("SERVER","localhost"); //IP o Nombre del Servidor
define("PORT",21); //Puerto
define("USER","usuario"); //Nombre de Usuario
define("PASSWORD","pass"); //Contraseña de acceso
define("PASV",true); //Activa modo pasivo
# FUNCIONES
function ConectarFTP(){
//Permite conectarse al Servidor FTP
$id_ftp=ftp_connect(SERVER,PORT); //Obtiene un manejador del Servidor FTP
ftp_login($id_ftp,USER,PASSWORD); //Se loguea al Servidor FTP
ftp_pasv($id_ftp,MODO); //Establece el modo de conexión
return $id_ftp; //Devuelve el manejador a la función
}
function SubirArchivo($archivo_local,$archivo_remoto){
//Sube archivo de la maquina Cliente al Servidor (Comando PUT)
$id_ftp=ConectarFTP(); //Obtiene un manejador y se conecta al Servidor FTP
ftp_put($id_ftp,$archivo_remoto,$archivo_local,FTP_BINARY);
//Sube un archivo al Servidor FTP en modo Binario
ftp_quit($id_ftp); //Cierra la conexion FTP
}
function ObtenerRuta(){
//Obriene ruta del directorio del Servidor FTP (Comando PWD)
$id_ftp=ConectarFTP(); //Obtiene un manejador y se conecta al Servidor FTP
$Directorio=ftp_pwd($id_ftp); //Devuelve ruta actual p.e. "/home/willy"
ftp_quit($id_ftp); //Cierra la conexion FTP
return $Directorio; //Devuelve la ruta a la función
}
?>
index.php
Código PHP:
include('ftp.php'); //Incluye el archivo de funciones
if(!empty($_POST["archivo"])){ //Comprueba si la variable "archivo" se ha definido
SubirArchivo($_POST["archivo"],basename($_POST["archivo"]));
//basename obtiene el nombre de archivo sin la ruta
unset($_POST["archivo"]); //Destruye la variable "archivo"
}
echo "<p>Subir Archivo</p>\n"
."<hr />\n"
."<form action=\"\" method=\"post\" name=\"form_ftp\" id=\"form_ftp\">\n"
."<p>Elegir archivo :\n"
."<input name=\"archivo\" type=\"file\" id=\"archivo\" />\n"
."<input name=\"Submit\" type=\"submit\" value=\"Subir Archivo\" />\n"
."<hr /><p>Lista de Archivos</p>\n"
."<table width=\"69%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n"
."<tr><td width=\"48%\" align=\"center\"><p>Nombre</p></td>\n"
."<td width=\"22%\" align=\"center\"><p>Tamaño</p></td>\n"
."<td width=\"30%\" align=\"center\"><p>Fec. Modificación</p></td>\n"
."</tr>\n";
$id_ftp=ConectarFTP(); //Obtiene un manejador y se conecta al Servidor FTP
$ruta=ObtenerRuta(); //Obtiene la ruta actual en el Servidor FTP
echo "<b>El directorio actual es: </b> ".$ruta;
$lista=ftp_nlist($id_ftp,$ruta); //Devuelve un array con los nombres de ficheros
$lista=array_reverse($lista); //Invierte orden del array (ordena array)
while ($item=array_pop($lista)) //Se leen todos los ficheros y directorios del directorio
{
$tamano=number_format(((ftp_size($id_ftp,$item))/1024),2)." Kb";
//Obtiene tamaño de archivo y lo pasa a KB
if($tamano=="-0.00 Kb") // Si es -0.00 Kb se refiere a un directorio
{
$item="<i>".$item."</i>";
$tamano=" ";
$fecha=" ";
}else{
$fecha=date("d/m/y h:i:s", ftp_mdtm($id_ftp,$item));
//Filemtime obtiene la fecha de modificacion del fichero; y date le da el formato de salida
}
echo "<tr><td><p>$item</p></td>\n"
."<td align=\"right\"><p>$tamano</p></td>\n"
."<td align=\"right\"><p>$fecha</p></td>\n"
."</tr>\n";
}
echo "</table>\n";
La dirección de donde lo saqué es esta:
http://www.desarrolloweb.com/articulos/1752.php