Foros del Web » Programando para Internet » PHP »

no se que le falla

Estas en el tema de no se que le falla en el foro de PHP en Foros del Web. Hola a todos. El siguiente php hace que me envíen archivos al servidor. Pero quiero limitarlo a que como máximo sean de 5 mbs de ...
  #1 (permalink)  
Antiguo 17/07/2010, 05:57
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
no se que le falla

Hola a todos.
El siguiente php hace que me envíen archivos al servidor. Pero quiero limitarlo a que como máximo sean de 5 mbs de tamaño. El formulario permite subir 10 archivos (archivo1, archivo2, etc...).

Código HTML:
function GuardaArchivosFormulario()
    {
        
        // Establecemos el directorio donde se guardan los ficheros
        $sDirGuardar = $_SERVER["DOCUMENT_ROOT"]."/files/";
        $iContFicSubidos = 0;

// tamaño
	    $tamanio1=$_FILES['archivo1']['size'];
$tamanio2=$_FILES['archivo2']['size'];
$tamanio3=$_FILES['archivo3']['size'];
$tamanio4=$_FILES['archivo4']['size'];
$tamanio5=$_FILES['archivo5']['size'];
$tamanio6=$_FILES['archivo6']['size'];
$tamanio7=$_FILES['archivo7']['size'];
$tamanio8=$_FILES['archivo8']['size'];
$tamanio9=$_FILES['archivo9']['size'];
$tamanio10=$_FILES['archivo10']['size'];

		if (($tamanio1+$tamanio2+$tamanio3$+tamanio4+$tamanio5+$tamanio6+$tamanio7+$tamanio8+$tamanio9+$tamanio10)>50000) {
		include 'error_archivos.html'};
      




        // Recorremos los Ficheros recibidos
        foreach ($_FILES as $vFichero)
        {
// tamaño
	    $tamanio=$_FILES['archivo1']['size'];

		if ($tamanio>4000){
		echo "Tamaño incorrecto";}
            
            // Se establece el fichero con el nombre original
            $sFichero = $sDirGuardar.$vFichero["name"];
            
            // Si el archivo ya existe, no lo guardamos
            if (file_exists($sFichero))
            {
                echo "<br/>El archivo ".$vFichero["name"]." ya existe<br/>";
                continue;
            }
// tamaño
	    $tamanio=$vFichero["archivo1"]['size'];

		if ($tamanio>4000){
		echo "Tamaño incorrecto";}

	    
            
            // Copiamos de la dirección temporal al directorio final
            
            if (filesize($vFichero["tmp_name"]))
                if (!(move_uploaded_file($vFichero["tmp_name"], $sFichero)))
                {
                    echo "<br/>Error al escribir el archivo ".$vFichero["name"]."<br/>";
                }
                else
                {
                    chmod($sFichero, 0666);
                    $iContFicSubidos++;
                }
            
        }
        
        include 'envio_pedido_correcto.html' ;



        
    }
        

?>
Como se puede ver he colocado detectores de tamaño por varios sitios pero no me funciona ninguno. He leido por el foro y he tratado de adaptar las respuestas pero me sigue sin funcionar. Os agradeceria que me ayudaseis. Gracias.
  #2 (permalink)  
Antiguo 17/07/2010, 08:51
Usuario no validado
 
Fecha de Ingreso: mayo-2005
Ubicación: Benicàssim
Mensajes: 56
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: no se que le falla

A simple vista y muy rápida, tienes el ";" fuera la llave final del condicional.
  #3 (permalink)  
Antiguo 17/07/2010, 09:12
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: no se que le falla

lo he corregido pero sigue sin funcionar.
Código HTML:
if (($tamanio1+$tamanio2+$tamanio3$+tamanio4+$tamanio5+$tamanio6+$tamanio7+$tamanio8+$tamanio9+$tamanio10)>50000) {
		include 'error_archivos.html'; }
Porque imagino que la comprobación la hará antes de enviar el archivo y no después....
  #4 (permalink)  
Antiguo 17/07/2010, 10:16
Usuario no validado
 
Fecha de Ingreso: mayo-2005
Ubicación: Benicàssim
Mensajes: 56
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: no se que le falla

Cita:
if ...+$tamanio3$+tamanio4+
Fijate que tienes un error de sintaxis...lo ves?
  #5 (permalink)  
Antiguo 17/07/2010, 11:12
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: no se que le falla

si, tambien lo corregí pero sigue igual....
  #6 (permalink)  
Antiguo 17/07/2010, 15:23
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: no se que le falla

declara $_FILES como global o pasala como parametro a la funcion.

suerte.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 17/07/2010, 15:29
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: no se que le falla

porque usas al final un ;

if (($tamanio1+$tamanio2+$tamanio3$+tamanio4+$tamanio 5+$tamanio6+$tamanio7+$tamanio8+$tamanio9+$tamanio 10)>50000) {
include 'error_archivos.html'};

yo no lo uso y me funciona

hazlo asi a ver

Código PHP:
 <? if ($tamanio1+$tamanio2+$tamanio3+$tamanio4+$tamanio5+$tamanio6+$tamanio7+$tamanio8+$tamanio9+$tamanio10>50000)  {
        include(
'error_archivos.html'); }  ?>

Etiquetas: falla
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 09:44.