Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2008, 16:05
Avatar de pato12
pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 2 meses
Puntos: 101
APORTE: Crear un sistema de ftp

Hola,
Cree un sistema de ftp básico, solo para dar una idea de cómo se hace.
Tiene:
* Visor de archivos en el servidor.
* Subir archivo
* Eliminar archivo
* Crear directorio
No esta ordenado. Si lo ordenan a las opciones mas y le ponen color va a quedar de 10.
Código:
Index.php
Código PHP:
<?php
if($_POST){
session_start();
session_register();
$_SESSION['us_ftp']=$_POST['us_ftp'];
$_SESSION['cl_ftp']=$_POST['cl_ftp'];
$_SESSION['sr_ftp']=$_POST['sr_ftp'];
$_SESSION['pr_ftp']=$_POST['pr_ftp'];
header("location: ftp_conection.php"); 
}
?>
<fieldset><legend>Conexion a servidor via FTP</legend><form action="" method="post" name="cx_ftp" id="cx_ftp">
  <strong>Usuario:</strong><br>
  <input name="us_ftp" type="text" id="us_ftp">
  <br>
  <strong>Clave:</strong><br>
  <input name="cl_ftp" type="password" id="cl_ftp">
  <br>
  <strong>Servidor:</strong><br>
  <input name="sr_ftp" type="text" id="sr_ftp">
  <br>
  <strong>Puerto:</strong><br>
  <input name="pr_ftp" type="text" id="pr_ftp">
  <br>
  <input name="ev_ftp" type="submit" id="ev_ftp" value="Entrar">
  <input name="rs_ftp" type="reset" id="rs_ftp" value="Borrar datos">
</form>
</fieldset>
ftp_conection.php
Código PHP:
<?php
session_start
();
//////////////////////
$usuario=$_SESSION['us_ftp'];
$clave=$_SESSION['cl_ftp'];
$servidor=$_SESSION['sr_ftp'];
$puerto=($_SESSION['pr_ftp']=="")? 21 $_SESSION['pr_ftp'];
$ftp=@ftp_connect($servidor,$puerto,600);
$conec=@ftp_login ($ftp$usuario$clave);
if(!
$ftp)
die(
"No se pudo conectar al servidor.");
elseif(!
$conec)
die(
"Conexion rechasada.");
echo 
'<script>
var sin_selec="#FFFFFF";
var con_selec="#E4E4E4";
function marcar(obj) {
elem=obj.parentNode.parentNode;
elem.style.backgroundColor=(obj.checked) ? con_selec : sin_selec;
}

function marcarTodos(obj) {
elem=document.getElementsByName("select[]");
for(i=0;i<elem.length;i++) {
elem[i].checked=obj.checked;
fila=elem[i].parentNode.parentNode;
fila.style.backgroundColor=(obj.checked) ? con_selec : sin_selec;
}
}
</script>
'
// Escibimos una funcion javascript
////////////////////
if(!isset($_GET['c']))
$dir_pr=ftp_pwd($ftp);
else
$dir_pr=$_GET['c'];
////////////////////
if($_POST && $_POST['v']=="e"){
foreach(
$_POST['select'] as $es_val){// Abrimos el foreach
$ar=@ftp_delete($ftp,$es_val);
if(
$ar// Si no es carpeta
echo "Se a eliminado correctamente.<br>";
else
// De lo contrario
echo "No se pudo eliminar.<br>";
// Cerramos el foreach
}
if(
$_POST && $_POST['v']=="c"){
$dir=$dir_pr.$_POST['dir'];
if (@
ftp_mkdir($ftp$dir)) {
 echo 
"Se a creado \"$dir\" con exito\n";
} else {
 echo 
"Hubo un problema al crear $dir\n";
}
}
if(
$_POST && $_POST['v']=="s"){     
$local_file $dir_pr.$_FILES['txt_file']['tmp_name'];
$destination_file $dir_pr.basename($_FILES['txt_file']['name']); 
$upload ftp_put($ftp$destination_file$local_fileFTP_BINARY);  
if(
$upload)
echo 
"Se a subido correctamente.";
else
echo 
"No se pudo subir correctamente.";
}
if(
$_POST && $_POST['v']=="sa"){     
session_unset(); 
session_destroy(); 
echo 
"Chau";
}

///////////////////
$pag=array();
echo 
"Directorio: ".$dir_pr;
if(
$dir_pr!="/")
echo 
"<br><a href='?c=/'>Ir al principio</a>";
echo 
'<form action="" name="selected" method="post"><table width="761" border="0" align="center" cellpadding="2" cellspacing="2">  <tr>
    <td width="445" height="19" bgcolor="#999999"><strong>Archivo o directorio </strong></td>
    <td width="276" bgcolor="#999999"><strong>Tama&ntilde;o</strong></td>
    <td width="20" bgcolor="#999999"><input type="checkbox" onClick="marcarTodos(this)" name="todos"/></td>
  </tr>
'
;
$contenidos ftp_nlist($ftp,$dir_pr);
$i=0;
foreach(
$contenidos as $cont){
$tamaño=ftp_size($ftp,$dir_pr.$cont);
if(
$tamaño==-&& $cont!="." && $cont!="..")
$pag[]="<tr>
    <td><a href='?c="
.$dir_pr.$cont."/'>$cont</a></td>
    <td >-</td>
    <td >-</td>
  </tr>
"
;
elseif(
$cont!="." && $cont!="..")
$pag[]="<tr>
    <td>$cont</td>
    <td >$tamaño bytes</td>
    <td > <input type='checkbox' onClick='marcar(this)' name='select[]' value='"
.$dir_pr.$cont."' /> </td>
  </tr>
"
;
$i=$i+$tamaño;
}
echo 
implode('',$pag);
echo 
'</table><input name="eliminar" type="submit" value="Eliminar selecionados"><input name="v" type="hidden" value="e"></form>';
echo 
'<form action="" name="selected" method="post"><input name="v" type="hidden" value="c">Crear directorio nuevo:<br><input name="dir" type="text"><input name="crear" type="submit" value="Crear nuevo directorio"></form>';
echo 
'        <form action="" method="POST" enctype="multipart/form-data">
                <input name="v" type="hidden" value="s">
            Subir archivo: <input name="txt_file" type="file" size="35" />
            <input type="submit" name="subir" value="Subir archivo"/>
        </form>'
;
echo 
"Tamaño aprox. de todos los archivos: ".$i." bytes";
echo 
'<form method="post"><input name="v" type="hidden" value="sa"><input name="salir" value="Salir" type="submit"></form>';
ftp_close($ftp);
?>
Para más información sobre la función ftp:
http://ar2.php.net/ftp
Gracias
Salu2
__________________
Half Music - www.halfmusic.com