Analizar tamaño de arrchivo antes de subirlo en PHP

Iniciado por Skeletron, 4 Agosto 2009, 05:17 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

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

[u]nsigned

#1
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 (perl) [Seleccionar]
<?php
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
    if(!
move_uploaded_file($_FILES['userfile']['tmp_name'], $_FILES['userfile']['name']))
    {
       echo 
"Error: No se pudo mover el archivo desde la carpeta temporal a ".$_FILES['userfile'][name];
    }
}
else
{
    echo 
"Error: No se pudo subir el archivo ".$_FILES['userfile']['tmp_name'];
}
?>


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

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Skeletron

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?

[u]nsigned

Para borrar un archivo usas la funcion unlink.
Código (php) [Seleccionar]
unlink('nombre_de_archivo');

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

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

дٳŦ٭

El archivo se queda en la carpeta temporal hasta que se mueve al destino, si este no tuviera.. no se guarda.


Con sangre andaluza :)


Skeletron

Cita de: дٳŦ٭ 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.
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)

дٳŦ٭

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.


Con sangre andaluza :)


Skeletron


Freeze.

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..