Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Skeletron en 4 Agosto 2009, 05:17 am



Título: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: Skeletron en 4 Agosto 2009, 05:17 am
Hola gente..
Estuve leyendo que al subirse un archivo al host desde la web, el archivo primero pasa a un carpeta temporal del server y luego para que no se borre hay que pasarla a una carpeta "fija"... Y que los archivos de la carpeta temporal, se eliminan automaticamente..

Tengo varias preguntas al respecto:
*Cuanto tiempo duran exactamente los archivos en esa carpeta temporal antes de ser eliminados?
*Es posible analizar el archivo ANTES DE SUBIRLO A LA CARPETA TEMPORAL?? para disminuir el ancho de banda usado...
+---*En caso de que sea posible, me dicen como¿? :D


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: [u]nsigned en 5 Agosto 2009, 00:49 am
El tamaño de un archivo se guarda en la variable $_FILES['userfile']['size'] donde 'userfile' es el atributo name del campo input tipo 'file' que se uso en el formulario donde se elige el archivo a subir. Pero claro, esta variable se genera una vez que el archivo le llega al servidor.

Si no queres ocupar lugar en el directorio temporal de subida poser hacer:

Código
  1. <?php
  2. if(is_uploaded_file($_FILES['userfile']['tmp_name']))
  3. {
  4.    if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $_FILES['userfile']['name']))
  5.    {
  6.       echo "Error: No se pudo mover el archivo desde la carpeta temporal a ".$_FILES['userfile'][name];
  7.    }
  8. }
  9. else
  10. {
  11.    echo "Error: No se pudo subir el archivo ".$_FILES['userfile']['tmp_name'];
  12. }
  13. ?>

Y así estarías moviendo, y no copiando, el archivo temporal hacia la ubicacion final para dicho archivo en disco.

Por otro lado, creo que los archivos temporales generados por php son gestionados por apache, yllos va borrrando segun crear conveniente, pero no estoy seguro de esto.

Saludos


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: Skeletron en 5 Agosto 2009, 01:35 am
Claro...

Unsigned.. viste que en otro psot estamos discutiendo eso de la asbe de datos y "CODIGO" fragmentado.. bueno... yo a ese archivo que me suben al servidor, tengo que moverlo a una carpeta FIJA (como el ejemplo), luego tomarle esos fragmentos que hablamos en el otro post, y luego borrar el archivo...
Para borrarlo luego de la carpeta en donde lo coloqué.. que utilizo?


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: [u]nsigned en 5 Agosto 2009, 02:02 am
Para borrar un archivo usas la funcion unlink (http://ar.php.net/unlink).
Código
  1. unlink('nombre_de_archivo');

Esta función devuelvo TRUE si todo salio bien, o FALSE si no se pudo borrar el archivo.

Saludos


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: дٳŦ٭ en 5 Agosto 2009, 04:47 am
El archivo se queda en la carpeta temporal hasta que se mueve al destino, si este no tuviera.. no se guarda.


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: Skeletron en 5 Agosto 2009, 15:46 pm
El archivo se queda en la carpeta temporal hasta que se mueve al destino, si este no tuviera.. no se guarda.
Pero la pregunta es: Cuanto tiempo queda en la carpeta temporal si no se lo mueve a algun lado.. o si se lo copia a algun lado (y queda la copia sin borrarse de la carpeta temporal)


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: дٳŦ٭ en 5 Agosto 2009, 19:33 pm
Brower envia archivo -> apache lo recibe manejandolo con php -> php lo pone por default en la carpeta /tmp -> al cerrar el apuntador php lo elimina y si lo copias no importa, no lo deja en tmp.

Saludos.


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: Skeletron en 6 Agosto 2009, 02:45 am
Aque te refeires con "Cerrar el apuntador"???


Título: Re: Analizar tamaño de arrchivo antes de subirlo en PHP
Publicado por: Freeze. en 6 Agosto 2009, 02:54 am
Desconectar la sesión, cierras la variable que dirije hacia a ese archivo, mas bien la conexión.. todo esto por decirlo de alguna manera..