Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2006, 22:00
pelu0
 
Fecha de Ingreso: agosto-2006
Mensajes: 50
Antigüedad: 17 años, 8 meses
Puntos: 0
Duda sobre manejo de error en limite de upload en php...

hola!! soy nuevo en esto, y necesito ayuda en un problemita que tengo, el problema es medio enredado, pero tratare de explicarlo....

estoy haciedo una pagina donde tengo un formulario para subir algun archivo al servidor que llama a otra pagina php que realiza todo el proceso de validaciones, subidas y todo el asunto... pero resulta que cuando subo un archivo con mayor peso del que tengo definido en php.ini, como que se bloquea todo el proceso...

mejor lo explico con un ejemplo

tengo en el archivo php.ini upload_max_filesize=8M
en la pagina php tengo un validador que deja subir archivos solamente de 3 megas, sino muestra un mensaje de que el archivo supera el limite establecido.

tengo capturado el error de cuando el archivo es MAYOR a 8 megas, pero no realiza las demas operaciones que NECESITO que haga...

ejemplo:

si en formulario con metodo post tengo esto

<input tipe="text" name="nombre" value="cosa" />
<input tipe="file" name="archivo" />

en la otra pagina los recojo asi

$nombre=$_POST['nombre'];
$tamaño_archivo=$HTTP_POST_FILE['archivo']['size'];

al validar el tamaño lo hago asi

if($tamaño_archivo>3000000){
echo "archivo supera limite.... blabla";}

el asunto es que si subo un archivo de 5 megas, al imprimir las variables

echo "Nombre:_".$nombre;
echo "Tamaño del archivo:_".$tamaño_archivo;

en pantalla saldria

Nombre:_cosa
Tamaño del archivo:_5000000

pero al subir un archivo de, por ejemplo, 10 megas en pantalla sale asi

Nombre:_
Tamaño del archivo:_

lo que implica que los valores no se guardan como quiero!!

como $tamaño_archivo queda nulo, manejo el error asi

if(isset($HTTP_POST_FILE['archivo']['size']){
$tamaño_archivo=$HTTP_POST_FILE['archivo']['size']
}
else
{
$tamaño_archivo=-1
}


con lo cual preguntando de que si $tamaño_archivo ==-1 puedo mostrar en pantalla de que el archivo es mayor al definido en php.ini y por ende el archivo es demasiado grande para ser subido, pero tambien necesito que en este caso queden guardados los datos enviados por el formulario en las variables que tengo definidas para otros procesos que tengo....

la pregunta es :¿como puedo capturar los valores enviados por el formulario, en este caso/error especifico??..

ojala haya quedado clara mi duda