|    
			
				11/11/2007, 07:37
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: noviembre-2007 
						Mensajes: 1
					 Antigüedad: 17 años, 11 meses Puntos: 0 |  | 
  |   Problema FTP con PHP 
  Hola a todos! 
He creado hace poco con mi portatil viejo un server con Ubuntu 7.1 y Xampp  
Ahora estoy intentando crear una pagina WebFTP, ya he encontrado el codigo pero me sale un error.  
La pagina del codigo es esta:  
http://www.desarrolloweb.com/articulos/1752.php  
Primero de todo detallo el codigo. Son 2 archivo: index.php y ftpfunc.php  
Codigo de index.php:    Cita:  <?php echo "<?xml version='1.0' encoding='iso-8859-1'?".">"; ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>::..Funciones FTP..::</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 </head>
 
 <body>
 <p align="center"><font size="5" face="Verdana, Tahoma, Arial"><strong><em>
 Funciones FTP
 </em></strong></font></p>
 <p><font face="Verdana, Tahoma, Arial">
 
 <?
 include('inc/ftpfunc.php'); //Incluye el archivo de funciones
 if(!empty($HTTP_POST_FILES["archivo"])){
 $file = $HTTP_POST_FILES["archivo"]["tmp_name"];
 $base_archivo = basename($HTTP_POST_FILES["archivo"]["name"]);
 $id_ftp=ConectarFTP();
 $upload = ftp_put($id_ftp, $base_archivo, $file, FTP_BINARY);
 if (!$upload) {
 $status = "Error al guardar: " . $base_archivo;
 } else {
 $status = "Exito al gaurdar: " . $base_archivo;
 }
 unset($HTTP_POST_FILES["archivo"]);
 ftp_quit($id_ftp);
 }
 /*if(!empty($HTTP_POST_FILES["archivo"])){ //Comprueba si la variable "archivo" se ha definido
 SubirArchivo($HTTP_POST_FILES["archivo"],basename($HTTP_POST_FILES["archivo"]));
 //basename obtiene el nombre de archivo sin la ruta
 unset($HTTP_POST_FILES["archivo"]); //Destruye la variable "archivo"
 }*/
 ?>
 <strong><font color="#000000" size="3">Subir Archivo</font></strong></font></p>
 <hr />
 
 <!--Formulario para elegir el archivo a subir -->
 <form action="" method="post" name="form_ftp" id="form_ftp" enctype="multipart/form-data">
 <p><font size="2" face="Verdana, Tahoma, Arial"> Elegir archivo :
 <input name="archivo" type="file" id="archivo" />
 <input name="Submit" type="submit" value="Subir Archivo" />
 </font><font size="2" face="Verdana, Tahoma, Arial"> </font> </p>
 </form>
 
 <hr />
 <p><font face="Verdana, Tahoma, Arial"><strong><font color="#000000" size="3">
 Lista de Archivos
 </font></strong></font></p>
 <table width="69%" border="1" cellspacing="0" cellpadding="0">
 <tr>
 <td width="48%"><div align="center"><font size="2" face="Verdana, Tahoma, Arial"><strong>Nombre</strong></font></div></td>
 <td width="22%"><div align="center"><font size="2" face="Verdana, Tahoma, Arial"><strong>Tamaño</strong></font></div></td>
 <td width="30%"><div align="center"><font size="2" face="Verdana, Tahoma, Arial"><strong>Fec.
 Modificación</strong></font></div></td>
 </tr>
 <?
 $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
 }
 ?>
 
 <tr>
 <td><font size="2" face="Verdana, Tahoma, Arial"><? echo $item ?></font></td>
 <td align="right"><font size="2" face="Verdana, Tahoma, Arial"><? echo $tamano ?></font></td>
 <td align="right"><font size="2" face="Verdana, Tahoma, Arial"><? echo $fecha ?></font></td>
 </tr>
 <? } ?>
 </table>
 </body>
 </html>
 Codigo de ftpfunc.php (que esta ubicada en la subcarpeta /inc):    Cita:  <?# FUNCIONES FTP
 
 # CONSTANTES
 # Cambie estos datos por los de su Servidor FTP
 define("SERVER","miserverftp"); //IP o Nombre del Servidor
 define("PORT",21); //Puerto
 define("USER","miuser"); //Nombre de Usuario
 define("PASSWORD","mipass"); //Contraseña de acceso
 define("MODO",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
 }
 ?>
 El problema biene cuando intento subir un archivo, en este caso intente subir el archivo gastos.txt (392b) y el firefox me devuelve el siguiente error:    Cita:  Warning: ftp_put() [function.ftp-put]: gastos.txt: Permission denied in /opt/lampp/htdocs/webftp/index.php on line 21 Alguien me puede ayudar?  
Muchas gracias!!     |