Crear un sistema de FTP con PHP


/ Published in: PHP
Save to your folder(s)



Copy this code and paste it in your HTML
  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

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

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.