Foros del Web » Programando para Internet » PHP »

¿Dónde se guarda un archivo mientras se esta subiendo?

Estas en el tema de ¿Dónde se guarda un archivo mientras se esta subiendo? en el foro de PHP en Foros del Web. Buenas tardes! Os cuento un poco la causa de mi pregunta... Quiero hacer una barra de progreso mientras se sube un archivo mediante un formulario... ...
  #1 (permalink)  
Antiguo 21/01/2009, 09:43
 
Fecha de Ingreso: noviembre-2006
Mensajes: 17
Antigüedad: 17 años, 5 meses
Puntos: 0
¿Dónde se guarda un archivo mientras se esta subiendo?

Buenas tardes! Os cuento un poco la causa de mi pregunta...

Quiero hacer una barra de progreso mientras se sube un archivo mediante un formulario... Para ello, quería saber si hay alguna forma de saber dónde se va subiendo ese archivo antes de que se haya completado, para hacer que, con ajax, vaya comparando el tamaño que se va subiendo con el tamaño total y así realizar esta barra...

Mi pregunta son dos:

¿Dónde se va guardando este archivo hasta que ha sido totalmente cargado?
Según mi planteamiento, ¿es posible hacer esa barra de progreso?


P.D: He encontrado muchos scripts que hacen esta función, pero la mayoría no se ajustan a lo que necesito para mi página, por eso quiero crearlo yo.

Gracias y saludos!
  #2 (permalink)  
Antiguo 21/01/2009, 10:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ¿Dónde se guarda un archivo mientras se esta subiendo?

Hola linkito,

Con PHP no puedes conocer el estado de un upload a menos que habilites la extensión php_upload.dll en el php.ini, al habilitarlo revisa el Manual de PHP, este te entrega ciertas variables con un identificador de Upload con el que puedes conocer el estado de tu upload.

Saludos
  #3 (permalink)  
Antiguo 21/01/2009, 10:24
 
Fecha de Ingreso: noviembre-2006
Mensajes: 17
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: ¿Dónde se guarda un archivo mientras se esta subiendo?

y con javascript u otro lenguaje de programacion? Ya que la barra de progreso la voy a hacer por Ajax, asi que me daría igual que lenguaje es el que recupera el estado del progreso del upload.

Gracias!
  #4 (permalink)  
Antiguo 21/01/2009, 10:24
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: ¿Dónde se guarda un archivo mientras se esta subiendo?

linkito:

Ademas de lo que elocuentemente nos ha explicado el amigo GatorV,
Cuando, desde un html o xhtml o etc archivo se activa una subida de archivo para ser ejecutado por el action=... del codigo y suponiendo que va dirigido a un archivo con extension php, el proceso es el siguiente->
El archivo (ejemplo: arch.jpg) es depositado en un archivo temporal definido por la variable del php.ini segun te detallo a continuacion;

Cita:
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /Apache/Apache2/htdocs/temp
en ausencia de ese directorio el archivo es subido temporalmente al directorio que por defecto utiliza el sistema operativo que utilizas.
En el caso especifico de php y habiendo definido un directorio especifico temporal, el archivo es subido al directorio temporal, valga la redundancia, con nombre php.(unnumero).tmp, observa que tmp es la extension utilizada por php.
Ahora, esto es muy importante, el archivo temporal permanece en el directorio temporal mientras este corriendo el archivo o codigo php; una vez el codigo php termina o mejor dicho exits(), el archivo desaparece o es transferido a su ubicacion final.
Es importante hacer notar que php al inicio del script o codigo y haciendo un is_uploaded_file...., ya conoce del tipo, nombre original, extension y demas detalles; es en este momento que tu puedes aceptar o rechazar el archivo de acuerdo a tu conveniencia.
Si quieres hacer una prueba puedes subir un archivo cualquiera y cuando el archivo php lo recibe puedes hacer un sleep(24) y abres el directorio temporal y lo podras ver por al menos 24 segundos; personalmente lo he logrado ver y hasta copiar para ver el contenido y si se conforma con lo realmente subido.
La funcion move_upload_file... hace el trabajo final de colocarlo en el directorio final. Pareciera ser que php traslada no realmente el archivo temporal pero mas bien el contenido de este y procede a destruir el temporal.
Saludos
Y espero nos ayude a todos
Franco
P.S. si haces un is_uploaded_file... y nada mas, podras observar que el archivo .tmp contiene el archivo a subir pero al terminar el codigo, php desaparece y elimina dicho archivo temporal.
P.S2 Para php version 5 o superior creo que la funcion php upload viene activada por defecto.

Última edición por franco190453; 21/01/2009 a las 19:20
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 02:50.