Foros del Web » Programando para Internet » PHP »

Subida de imágenes

Estas en el tema de Subida de imágenes en el foro de PHP en Foros del Web. Hola vereis tengo uj problema para subir las imágenes. El problema es que me las sube todas jejeje. No importa el tamaño ni el formato. ...
  #1 (permalink)  
Antiguo 23/08/2010, 08:52
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 14 años, 5 meses
Puntos: 0
Subida de imágenes

Hola vereis tengo uj problema para subir las imágenes. El problema es que me las sube todas jejeje.

No importa el tamaño ni el formato.

Lo que quiero conseguir es que si no es gif o jpg ni que supere un peso no se suba, pero que se siga procesando la pñagina para guardar los demás registros.

tengo esto.

Código:

Código PHP:
//datos del arhivo 
$carpeta "img";
$nombre_archivo1 $_FILES['img']['name']; 
$tipo_archivo1 $_FILES['img']['type']; 
$tamano_archivo1 $_FILES['img']['size']; 
$nombre_archivo_temp1 $_FILES['img']['tmp_name'];
//datos del arhivo 
$carpeta "img";
$nombre_archivo2 $_FILES['img2']['name']; 
$tipo_archivo2 $_FILES['img2']['type']; 
$tamano_archivo2 $_FILES['img2']['size']; 
$nombre_archivo_temp2 $_FILES['img2']['tmp_name'];
//datos del arhivo 
$carpeta "img";
$nombre_archivo3 $_FILES['img3']['name']; 
$tipo_archivo3 $_FILES['img3']['type']; 
$tamano_archivo3 $_FILES['img3']['size']; 
$nombre_archivo_temp3 $_FILES['img3']['tmp_name'];
//datos del arhivo 
$carpeta "img";
$nombre_archivo4 $_FILES['img4']['name']; 
$tipo_archivo4 $_FILES['img4']['type']; 
$tamano_archivo4 $_FILES['img4']['size']; 
$nombre_archivo_temp4 $_FILES['img4']['tmp_name'];

//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo1"gif") || strpos($tipo_archivo1"jpeg")) && ($tamano_archivo1 1500000))) { 
       echo 
"<div class='textos'>La im&aacute;gen principal no ha sido subida.<br /><br />
    Puede ser por los siguientes motivos:<br />
<br />
<li>Que usted no haya seleccionado ninguna im&aacute;gen</li>
<li>Que la im&aacute;gen no cumpla con los requisitos de la web</li><br />
</div>"

}if (!((
strpos($tipo_archivo2"gif") || strpos($tipo_archivo2"jpeg")) && ($tamano_archivo2 1500000))) { 
       echo 
"<div class='textos'>La im&aacute;gen 2 no ha sido subida.<br /><br />
        Puede ser por los siguientes motivos:<br />
<br />
<li>Que usted no haya seleccionado ninguna im&aacute;gen</li>
<li>Que la im&aacute;gen no cumpla con los requisitos de la web</li><br /></div>"

}if (!((
strpos($tipo_archivo3"gif") || strpos($tipo_archivo3"jpeg")) && ($tamano_archivo3 1500000))) { 
       echo 
"<div class='textos'>La im&aacute;gen 3 no ha sido subida.<br /><br />
        Puede ser por los siguientes motivos:<br />
<br />
<li>Que usted no haya seleccionado ninguna im&aacute;gen</li>
<li>Que la im&aacute;gen no cumpla con los requisitos de la web</li><br /></div>"

}if (!((
strpos($tipo_archivo4"gif") || strpos($tipo_archivo4"jpeg")) && ($tamano_archivo4 1500000))) { 
       echo 
"<div class='textos'>La im&aacute;gen 4 no ha sido subida.<br /><br />
        Puede ser por los siguientes motivos:<br />
<br />
<li>Que usted no haya seleccionado ninguna im&aacute;gen</li>
<li>Que la im&aacute;gen no cumpla con los requisitos de la web</li><br /></div>"

}if (
move_uploaded_file($nombre_archivo_temp1"$carpeta/$nombre_archivo1" )){ 
    echo 
"";
    }
       if (
move_uploaded_file($nombre_archivo_temp2"$carpeta/$nombre_archivo2" ))
    { 
    echo 
"";
    }
       if (
move_uploaded_file($nombre_archivo_temp3"$carpeta/$nombre_archivo3" ))
    { 
    echo 
"";
    }
       if (
move_uploaded_file($nombre_archivo_temp4"$carpeta/$nombre_archivo4" ))
    { 
    echo 
"";
    } 
  #2 (permalink)  
Antiguo 23/08/2010, 08:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Subida de imágenes

Es cuestión de recorrer en un bucle y verificar si no hay error. Luego corroboras la extensión del archivo. En el manual hay un ejemplo de como lograrlo http://php.net/manual/en/function.mo...oaded-file.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 23/08/2010, 14:44
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Subida de imágenes

Perdona pero no se como lograrlo, si me pudieras dar un manual en español o alguna explicación te lo agradecería mucho!

Un saludo
  #4 (permalink)  
Antiguo 23/08/2010, 15:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Subida de imágenes

Hola fijate este código, permite imágenes de hasta 400kb, si por ejemplo se ingresan dos imágenes que cumplen con el formato y dos que no, solo se suben las que si cumplen.

Código PHP:
Ver original
  1. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  2. <input type="text" name="nro" />
  3. <input type="submit" name="boton" value="Aceptar" />
  4. </form>
  5.  
  6.     <?php
  7.  
  8.     if($_POST['boton']){
  9.        
  10.     ?>
  11.    
  12.     <br />
  13.     <br />
  14.    
  15.     <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
  16.    
  17.     <?php
  18.        
  19.         for($x=1; $x<=$_POST['nro']; $x++){
  20.        
  21.         ?>
  22.        
  23.         <input type="file" name="img<?php echo $x; ?>" /> <br />
  24.        
  25.         <?
  26.        
  27.         }
  28.  
  29.     ?>
  30.     <input type="hidden" name="cant" value="<?php echo $_POST['nro']; ?>">
  31.     <input type="submit" name="upload" value="Subir im&aacute;genes">
  32.     </form>
  33.    
  34.     <?php
  35.  
  36.     }
  37.    
  38.     if($_POST['upload']){
  39.        
  40.         for($a=1; $a<=$_POST['cant']; $a++){
  41.            
  42.             if($_FILES){
  43.                
  44.                 $patron['jpg'] = '/^[a-zA-Z0-9]{1,}+.jpg/';
  45.                 $patron['gif'] = '/^[a-zA-Z0-9]{1,}+.gif/';
  46.  
  47.                                 $limite = 400;
  48.  
  49.                 if($_FILES['img'.$a]['size']/1024 <= $limite){
  50.                
  51.                 if(preg_match($patron['jpg'], $_FILES['img'.$a]['name']) or preg_match($patron['gif'], $_FILES['img'.$a]['name'])){
  52.                    
  53.                     move_uploaded_file($_FILES['img'.$a]['tmp_name'], $_FILES['img'.$a]['name']);
  54.                    
  55.                 }
  56.                
  57.                 else{
  58.                    
  59.                     echo 'Solo se admiten formatos GIF o JPG';
  60.                    
  61.                 }
  62.                
  63.                 }
  64.                
  65.                 else{
  66.                    
  67.                     echo 'Solo se admiten im&aacute;genes de hasta ' . $limite . ' kb';
  68.                
  69.                 }
  70.             }
  71.        
  72.         }
  73.        
  74.     }
  75.  
  76.     ?>

Etiquetas: subida
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 08:53.