Foros del Web » Programando para Internet » PHP »

A ver quien quiere ayudar con este codigo

Estas en el tema de A ver quien quiere ayudar con este codigo en el foro de PHP en Foros del Web. El siguinte codigo es de una [plicacion apra subior archivos al servidor a traves de un formulario (cosa que uiltimamente han pedido mucho por estos ...
  #1 (permalink)  
Antiguo 17/06/2003, 03:55
Avatar de HIa
HIa
 
Fecha de Ingreso: noviembre-2002
Ubicación: Cartago
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 0
A ver quien quiere ayudar con este codigo

El siguinte codigo es de una [plicacion apra subior archivos al servidor a traves de un formulario (cosa que uiltimamente han pedido mucho por estos lugares asi que me tome la lebertad de hacer un sistemita.. aun le falta pero les aseguro que les sera util...
Código PHP:

<?php
if ( !isset( $_GET['user'] ) )
{
    
header"Location: [url]http://localhost/post_a_new_php/login.php[/url]" );

else
{
$user $_GET['user'];
}
$permitidos = array ( "gif""jpeg""png""pcx""jpg""bmp""pas""doc""rtf""zip""rar""wav""mp3""txt""pdf""ppt""exe""class" );
if ( !include( 
"config/main.php" ) )
{
    die ( 
"Error abriendo el archivo de configuraciones" );
    exit();

if ( !include( 
"mods/idiomas.php" ) )
{
    die ( 
"Error abriendo el archivo de idiomas" );
    exit();


echo
"<html>
            <head>
            <title>$idioma[0]</title>
    <!--
        SELECT, option, textarea, input {
        BORDER-RIGHT: #808080 1px dotted;
        BORDER-TOP: #808080 1px dotted;
        BORDER-BOTTOM: #808080 1px dotted;
        BORDER-LEFT: #808080 1px dotted;
        COLOR: #000000;
        FONT-SIZE: 11px;
        FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffffff }
        BODY, TD {text-decoration: none; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt;}
        a:active,a:visited,a:link {font-size : 10px; color: #808080; font-family: verdana; text-decoration: none;}
        a:hover {font-size : 10px; color: #000000; font-family: verdana; text-decoration: none; }
    -->
    </style>
    </head>"
;
$form "
    <body bgcolor=#FFFFFF>
    <center><table border=0  width=99% cellspacing=0 cellpadding=0 align=\"center\">
    <td height=\"1\" colspan=\"3\">
    <td height=\"1\">
    <tr>
    <td height=\"1\">
    &nbsp;
    <td height=\"1\" colspan=\"3\">
    <FORM action=\"\" METHOD=\"POST\" ENCTYPE=\"multipart/form-data\">
  <table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"1\">
    <tr>
      <td width=\"41%\"><input name=\"image\" type=\"file\" size=\"20\"></td>
      <td width=\"59%\">&nbsp;</td>
    </tr>
    <tr>
      <td height=\"21\"><p> <br>
          Comentarios:
          <textarea name=\"textarea\" cols=\"18\"></textarea>
        </p>
        </td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Importancia:
        <select name=\"select\">
          <option value=\"1\" selected>1</option>
          <option value=\"2\">2</option>
          <option value=\"3\">3</option>
          <option value=\"4\">4</option>
          <option value=\"5\">5</option>
        </select>&nbsp;<input type=\"submit\" name=\"Submit\" value=\"Enviar\"></td>
    </tr>
  </table>
</form>
</center>"
;
if ( isset( 
$_FILES['image']['tmp_name'] ) )
{
    if ( !
is_uploaded_file$_FILES['image']['tmp_name'] ) ) // Verifica si un archivo en verdad es real
    
{
        echo 
"<script> alert(\"$idioma[12]\") </script>";
    } 
    else
    {
        
$image $_FILES['image']['tmp_name'];
        
$image_name $_FILES['image']['name'];
        
$image_name str_replace" ""_"$image_name );
        
$extencion explode "."$image_name );
        
$extencion end $extencion );
        if ( 
$image_name == "" )
        {
            
$img_result "<script> alert (\"$idioma[2]\")</script>";
        } 
        else
        if ( @
file_exists"upload/$image_name" ) )
        {
            
$img_result "
       <script>
       var overwrite = confirm (\"$idioma[3]\")
           if (overwrite==true)
            {
                alert (\"$idioma[10]\");
            }
       </script>"
;
            if ( 
strstr$img_result"overwrite==true" ) )
            {
                
$borrar unlink"upload/$image_name" );
                
$copiar copy$image"upload/$image_name" );
            } 
        } 
        else
        if ( [email protected]
in_array$extencion$permitidos ) )
        {
            
$img_result "<script> alert (\"$idioma[4]\")</script>";
        } 
        else
        {
            @
move_uploaded_file$image"upload/$image_name" ) or $img_result "<font color=red>$idioma[5]</font><br>";
            if ( @
file_exists"upload/$image_name" ) )
            {
                
$img_result "<script> alert (\"$idioma[6]\")</script>"//El archivo es subido satisfactoriamente
            

            else
            {
                
$img_result "<script> alert (\"$idioma[7]\")</script>"//Error
            

        } 
    } 

// Creo la cabecera de la tabla
echo "<center>$idioma[8]</center>";
echo 
"<center>$form</center>";
if ( !isset( 
$img_result ) )
{
    
$img_result "$idioma[9]";

echo 
"<center>$img_result<center>";
echo 
"<center><font size=1 face=Verdana><b>Lista de ficheros</b></font></center>";
echo 
"<br><center><table width=\"69%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr bgcolor=\"#FFCCFF\">
            <td width = \"5%\"><center></center></td>
            <td width = \"20%\"><b>Nombre del archivo</b></td>
            <td width = \"10%\"><b><center>Tamaño</center></b></td>
            <td width = \"15%\"><b><center>Creado</center></b></td>
            <td width = \"7%\"><b><center>Importancia</b></center></td>
            <td width = \"10%\"><b><center>Tipo</center></b></td>
       </tr></center> "
;
__________________
Siempre hay algo nuevo que aprender
  #2 (permalink)  
Antiguo 17/06/2003, 04:14
Avatar de HIa
HIa
 
Fecha de Ingreso: noviembre-2002
Ubicación: Cartago
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 0
Continua el codigo...

Código PHP:
$path = ( 'upload' ); //directoro al cual quiere verrificar su contenido
// abro el directorio raiz
$handle opendir$path );
$ficheros 0;
$archivos 0;
$ficheros 0;
$a 0
// leo los archivos del directorio
while ( $file readdir$handle ) )

    
// Paso a minuscula los nombres de los ficheros
    
$file strtolower$file );
    
$extencion explode"."$file );
    
$extencion end$extencion );
    
$tipo filetype$path "/" $file ); 
    
// leo el tamaño de los ficheros
    
$tama = ( filesize"$path/$file" ) ); 
    
// formateo los numeros a dos decimales
    
if ( $tama >= 1073741824 )
    {
        
$tama round$tama 1073741824 100 ) / 100 " " "Gb";
    } 
    else if ( 
$tama >= 1048576 )
    {
        
$tama round$tama 1048576 100 ) / 100 " " "Mb";
    } 
    else if ( 
$tama >= 1024 )
    {
        
$tama round$tama 1024 100 ) / 100 " " "Kb";
    } 
    else
    {
        
$tama $tama " " "b";
    } 
    
// Obtengo la fecha del último cambio en el archivo
    
$modi date"j.n.Y"filemtime"$path/$file" ) ); 
    
// Se obtienen los comentarios del archivo de texto
    // Se muestra el icono de las imagenes si el tipo es permitido y el tamaño es mayor a 0. Si no es un directorio
    
if ( ( @file_exists"$path/$file" ) ) and ( $tipo != "dir" ) )
    {
        if ( [email protected]
fopen "$path/$file.cmt""r" ) )
        {
            
$coment "Archivo sin comentarios";
            
$importancia "<img src = \"imagenes/warn-1.gif\" alt = \"Sin importancia definida\">";
            
$ikon "off";
        } 
        else
        
$file file"$path/$file.cmt");
        {foreach (
$file as $indice)
  {
   
$linea explode("|",$file[$indice]);    
    if (
$file[$indice] == 0)
     {
        
$cometario   $linea[1];
        
$importancia $linea[0];
     } 
      else
     {
      if (
$linea[0] == $user)
    {
     
$ikon $linea[1];
     
$esta true;
     break;
    }
         else
        {
     
$esta false;    
        }    
     }
  }
if (
$esta == false)
 {
  
nuevo_f fopen($archivo"a+");
  
nuevo_u fputs($archivo"$user{|on}\n");
  
nuevo_f fclose($archivo);
 }
        } 
    } 

    if ( 
in_array$extencion$permitidos ) )
    { 
        
// Creo un array que contendra todos los archivos aceptados
        
$img[$a][0] = $file//nombre del archivo
        
$img[$a][1] = $tama//tamaño del fichero
        
$img[$a][2] = $modi//fecha de modificacion
        
$img[$a][3] = $coment//comentario del archivo
        
$img[$a][4] = $importancia//Nivel de importancia del archivo
        
$img[$a][5] = $extencion//icono de la extencion
        
$img[$a][6] = "<img src =\"imagenes/$ikon.gif\">"//icomo de revision
        
$a $a 1;
        
$archivos $archivos 1;
    } 

else

    
// reviso que no sean ".", ".." o que sea un archivo desconocido?
    
if ( ( $file != '.' ) and ( $file != '..' ) and ( filetype"$path/$file" ) != "block" ) )
    {
        if ( [email protected]
fopen "$path/$file.cmt""r" ) )
        {
            
$coment "Archivo sin comentarios";
            
$importancia "<img src = \"imagenes/warn-1.gif\" alt = \"Sin importancia definida\">";
        } 
        else
        {
            
$abre fopen"$path/$file.cmt""r+" );
            
$coment fread$abrefilesize$abre ) );
            
$importancia "<img src = \"imagenes/warn-$coment[1].gif\" alt = \"Nivel de importancia\">";
        } 
        
// Creo un array que contendra todos los posibles directorios
        
$carpeta[$a][0] = $file;
        
$carpeta[$a][1] = $coment;
        
$a $a 1;
        
$ficheros $ficheros 1;
    } 


// cierro el $path
closedir$handle );
// Cuento el numero de ficheros y los muestro
if ( ( !isset( $img ) ) )
{
echo ( 
"<center><B>$idioma[11]</b></center><br>" );

else
{
// Combino ambos arrays para que todo quede ordenado
// $dir = array_merge($carpeta,$img);  //no ahora
// Recorro cada uno de los dos arrays y regreso el valor de cada uno
$b 1;
foreach ( 
$img as $key => $value )
{
    if ( 
$b )
    {
        
$color "FFFFFF";
        
$b $b 1;
    } 
    else
    {
        
$color "CCCCCC";
        
$b $b 1;
    } 
    
$info "$path/";
    if ( 
strlen$img[$key][0] ) > 23 )
    {
        
$file substr$img[$key][0], 023 ) . "...";
    } 
    else
    {
        
$file $img[$key][0];
    } 
    echo 
"<tr bgcolor=\"#$color\">";
    echo 
"<td><center>{$img[$key][6]}</center></td>";
    echo 
"<td>&nbsp;<a href = \"$path/{$img[$key][0]}\"  title=\"Comentarios: \n{$img[$key][3]}\" target = \"_blank\">$file</td>";
    echo 
"<td><div align=\"right\">{$img[$key][1]}</div></td>";
    echo 
"<td><center>{$img[$key][2]}</center></td>";
    echo 
"<td><center>{$img[$key][4]}</center></td>";
    echo 
"<td><center><img src = \"imagenes/formato/t_{$img[$key][5]}.gif\" alt = \"Documento tipo: {$img[$key][5]}\"></center></td>";
    echo 
"</tr>";

$dir count$img );
$carpeta = @count$carpeta ); //Si carpeta no esta definida me da 0
echo "</table>";
echo 
"<br><center>Se han encontrado <b>[ $dir ]</b> archivos y <b>[ $carpeta ]</b> directorios</center>";
echo 
"</body></html>";


?> 

hay ciertas cosas que tomar en cuenta:[list=1][*]Debes pasarle al script la variable $_POST['user'] de algun formulario en mi caso era login.php[*]Cambia el header por la ubicacion de tu formulario de registro[*]Falta de incluir el mod de idiomas que contiene un arreglo con todos los mensajes del script.. ($idioma[1] = "hola....")[*]Si estas en linux poner los permisos de lectura/escritura a la carpeta[*]La ruta path es donde esta la carpeta a la que quieres subir los archivos[*]el arreglo "permitidos", son loos tipos de extencion que se pueden subir, por ahora la validacion mime la dejo para otra version[*]por lo dema pregunten que ya me canse....[/list=1]

ahorita estoy subiendo el script alycos para probarlo en ambiente "real" luego les doi el URL
__________________
Siempre hay algo nuevo que aprender
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:56.