Posted By

okidoka on 08/27/09


Tagged

php FTP


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

umang_nine


Crear un sistema de FTP con PHP


 / Published in: PHP
 

URL: http://phptero.zobyhost.com/verpost.php?val=165

  1. Hola,
  2. Cree un sistema de ftp básico, solo para dar una idea de cómo se hace.
  3. Tiene:
  4.  
  5. * Visor de archivos en el servidor.
  6. * Subir archivo
  7. * Eliminar archivo
  8. * Crear directorio
  9. No esta ordenado. Si lo ordenan a las opciones mas y le ponen color va a quedar de 10.
  10. Código:
  11.  
  12.  
  13. Index.php
  14.  
  15. <?php
  16. if($_POST){
  17. $_SESSION['us_ftp']=$_POST['us_ftp'];
  18. $_SESSION['cl_ftp']=$_POST['cl_ftp'];
  19. $_SESSION['sr_ftp']=$_POST['sr_ftp'];
  20. $_SESSION['pr_ftp']=$_POST['pr_ftp'];
  21. header("location: ftp_conection.php");
  22. }
  23. ?>
  24. <fieldset><legend>Conexion a servidor via FTP</legend><form action="" method="post" name="cx_ftp" id="cx_ftp">
  25. <strong>Usuario:</strong><br>
  26. <input name="us_ftp" type="text" id="us_ftp">
  27. <br>
  28. <strong>Clave:</strong><br>
  29. <input name="cl_ftp" type="password" id="cl_ftp">
  30. <br>
  31. <strong>Servidor:</strong><br>
  32. <input name="sr_ftp" type="text" id="sr_ftp">
  33. <br>
  34. <strong>Puerto:</strong><br>
  35. <input name="pr_ftp" type="text" id="pr_ftp">
  36. <br>
  37. <input name="ev_ftp" type="submit" id="ev_ftp" value="Entrar">
  38. <input name="rs_ftp" type="reset" id="rs_ftp" value="Borrar datos">
  39. </form>
  40. </fieldset>
  41.  
  42. ftp_conection.php
  43.  
  44. <?php
  45. //////////////////////
  46. $usuario=$_SESSION['us_ftp'];
  47. $clave=$_SESSION['cl_ftp'];
  48. $servidor=$_SESSION['sr_ftp'];
  49. $puerto=($_SESSION['pr_ftp']=="")? 21 : $_SESSION['pr_ftp'];
  50. $ftp=@ftp_connect($servidor,$puerto,600);
  51. $conec=@ftp_login ($ftp, $usuario, $clave);
  52. if(!$ftp)
  53. die("No se pudo conectar al servidor.");
  54. elseif(!$conec)
  55. die("Conexion rechasada.");
  56. echo '<script>
  57. var sin_selec="#";
  58. var con_selec="#E4E4E4";
  59. function marcar(obj) {
  60. elem=obj.parentNode.parentNode;
  61. elem.style.backgroundColor=(obj.checked) ? con_selec : sin_selec;
  62. }
  63.  
  64. function marcarTodos(obj) {
  65. elem=document.getElementsByName("select[]");
  66. for(i=0;i<elem.length;i++) {
  67. elem[i].checked=obj.checked;
  68. fila=elem[i].parentNode.parentNode;
  69. fila.style.backgroundColor=(obj.checked) ? con_selec : sin_selec;
  70. }
  71. }
  72. </script>
  73. '; // Escibimos una funcion javascript
  74. ////////////////////
  75. if(!isset($_GET['c']))
  76. $dir_pr=ftp_pwd($ftp);
  77. else
  78. $dir_pr=$_GET['c'];
  79. ////////////////////
  80. if($_POST && $_POST['v']=="e"){
  81. foreach($_POST['select'] as $es_val){// Abrimos el foreach
  82. $ar=@ftp_delete($ftp,$es_val);
  83. if($ar) // Si no es carpeta
  84. echo "Se a eliminado correctamente.<br>";
  85. else// De lo contrario
  86. echo "No se pudo eliminar.<br>";
  87. } // Cerramos el foreach
  88. }
  89. if($_POST && $_POST['v']=="c"){
  90. $dir=$dir_pr.$_POST['dir'];
  91. if (@ftp_mkdir($ftp, $dir)) {
  92. echo "Se a creado \"$dir\" con exito\n";
  93. } else {
  94. echo "Hubo un problema al crear $dir\n";
  95. }
  96. }
  97. if($_POST && $_POST['v']=="s"){
  98. $local_file = $dir_pr.$_FILES['txt_file']['tmp_name'];
  99. $destination_file = $dir_pr.basename($_FILES['txt_file']['name']);
  100. $upload = ftp_put($ftp, $destination_file, $local_file, FTP_BINARY);
  101. if($upload)
  102. echo "Se a subido correctamente.";
  103. else
  104. echo "No se pudo subir correctamente.";
  105. }
  106. if($_POST && $_POST['v']=="sa"){
  107. echo "Chau";
  108. }
  109.  
  110. ///////////////////
  111. $pag=array();
  112. echo "Directorio: ".$dir_pr;
  113. if($dir_pr!="/")
  114. echo "<br><a href='?c=/'>Ir al principio</a>";
  115. echo '<form action="" name="selected" method="post"><table width="761" border="0" align="center" cellpadding="2" cellspacing="2"> <tr>
  116. <td width="445" height="19" bgcolor="#999999"><strong>Archivo o directorio </strong></td>
  117. <td width="276" bgcolor="#999999"><strong>Tama&ntilde;o</strong></td>
  118. <td width="20" bgcolor="#999999"><input type="checkbox" onClick="marcarTodos(this)" name="todos"/></td>
  119. </tr>
  120. ';
  121. $contenidos = ftp_nlist($ftp,$dir_pr);
  122. $i=0;
  123. foreach($contenidos as $cont){
  124. $tamaño=ftp_size($ftp,$dir_pr.$cont);
  125. if($tamaño==-1 && $cont!="." && $cont!="..")
  126. $pag[]="<tr>
  127. <td><a href='?c=".$dir_pr.$cont."/'>$cont</a></td>
  128. <td >-</td>
  129. <td >-</td>
  130. </tr>
  131. ";
  132. elseif($cont!="." && $cont!="..")
  133. $pag[]="<tr>
  134. <td>$cont</td>
  135. <td >$tamaño bytes</td>
  136. <td > <input type='checkbox' onClick='marcar(this)' name='select[]' value='".$dir_pr.$cont."' /> </td>
  137. </tr>
  138. ";
  139. $i=$i+$tamaño;
  140. }
  141. echo implode('',$pag);
  142. echo '</table><input name="eliminar" type="submit" value="Eliminar selecionados"><input name="v" type="hidden" value="e"></form>';
  143. 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>';
  144. echo ' <form action="" method="POST" enctype="multipart/form-data">
  145. <input name="v" type="hidden" value="s">
  146. Subir archivo: <input name="txt_file" type="file" size="35" />
  147. <input type="submit" name="subir" value="Subir archivo"/>
  148. </form>';
  149. echo "Tamaño aprox. de todos los archivos: ".$i." bytes";
  150. echo '<form method="post"><input name="v" type="hidden" value="sa"><input name="salir" value="Salir" type="submit"></form>';
  151. ftp_close($ftp);
  152.  
  153. Bueno espero que les sea de utilidad
  154.  
  155.  
  156. BEY Y SALU2

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: amitmmc1 on September 10, 2009

Not understand.. Please in english

Posted By: grupoarginfo on December 24, 2009

Por qué simpre los "españoles" deben escribirles a los inútiles de los "ingleses" todo en su idioma porque "Not understand"?!?! Acaso no conocen el trductor de google? Busquense la forma de entender. Porque la mayoría de los programas para la pc, las páginas webs y demás, ESTÁN TODAS EN ENGLISH. Y nosotros nos la arreglamos muy bien!

VAMOS PONGANSE, USEN SUS CAPACIDADES (SI ES QUE TIENEN) Y TRADUZCANSE ALGO. Aunquesa algo.

Es más, los código (HTML, PHP, SQL, ASP, C, CSS, PERL... etc) Están compuestos por palabras en inglés.

Ejemplo: En el código HTML son pequeñas palabras todas en inglés, y los "espñoles no tenemos ningún problema en descifrar lo que posieron los "ingleses".

etc.. etc... etc...

Herramientas para traducir: http://translate.google.com, http://babelfish.yahoo.com hay muchos más solo pose dos...

You need to login to post a comment.