Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2011, 00:58
Avatar de reborn
reborn
 
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 3 meses
Puntos: 1
[Ayuda] Error upload de imágenes y phpmailer.

Buenas.
Hice un multiple uploader de imagenes en donde le agrego condiciones extension (gif, jpeg, png) y tamaño (hasta 200 kb).

El sistema funciona bien pero tengo problemas al enviar los datos al correo.

Código PHP:

if (isset ($_FILES["images"])) {         


         
$cant count($_FILES["images"]["name"]);
        

         for (
$i 0$i $cant$i++){

            
$tmp_name $_FILES["images"]["tmp_name"][$i];
            
$nombre_img $_FILES["images"]["name"][$i];
            
$tipo_img $_FILES["images"]["type"][$i];
            
$size_img $_FILES["images"]["size"][$i];

if (!((
strpos($tipo_img"gif") || strpos($tipo_img"jpeg") || strpos($tipo_img"png")) && (    $size_img 200000)))

    echo 
"Recuerde: el tamaño de las imágenes no deben pasar los 200 kb y se permiten extensiones .gif  .jpg y .png";
    echo 
'<a href="javascript:history.back(1)">Volver Atrás</a>';  
}
else


             
$random_digit=rand(0000,9999);

//combino el numero con el nombre

    
$nuevo_nom=$random_digit.$nombre_img;
    
    
$directorio 'foto/';
    

    if (
move_uploaded_file($_FILES['images']['tmp_name'][$i],$directorio "/" $nuevo_nom)){

    
      echo 
$nuevo_nom;
            

 
    }else{
    echo 
"error";
    }     
  }
  
}
      

...como decia antes, quiero enviar las imagenes al correo y para ello utilizo phpmailer, pero me envia dos correos diferentes con las distintas imagenes, es decir, si subo dos imagenes, me envia un correo por cada imagen y yo busco enviar un solo correo con las imagenes q el usuario suba, ya sean dos o tres, etc...

Coloque la linea de prueba echo $nuevo_nom; para ver si arrojaba las diferentes imagenes subidas y efectivamente es asi, pero en esa linea quiero q se envie el correo con las imagenes pero me envia dos, uno por cada imagen.

No puedo encontrar el error.

Yo hacia lo siguiente: colocaba las lineas de phpmailer luego del if (move_uploaded_file..., quedando de la siguiente manera:

Código PHP:

if (isset ($_FILES["images"])) {         


         
$cant count($_FILES["images"]["name"]);
        

         for (
$i 0$i $cant$i++){

            
$tmp_name $_FILES["images"]["tmp_name"][$i];
            
$nombre_img $_FILES["images"]["name"][$i];
            
$tipo_img $_FILES["images"]["type"][$i];
            
$size_img $_FILES["images"]["size"][$i];

if (!((
strpos($tipo_img"gif") || strpos($tipo_img"jpeg") || strpos($tipo_img"png")) && (    $size_img 200000)))

    echo 
"Recuerde: el tamaño de las imágenes no deben pasar los 200 kb y se permiten extensiones .gif  .jpg y .png";
    echo 
'<a href="javascript:history.back(1)">Volver Atrás</a>';  
}
else


             
$random_digit=rand(0000,9999);

//combino el numero con el nombre

    
$nuevo_nom=$random_digit.$nombre_img;
    
    
$directorio 'images/';
    

    if (
move_uploaded_file($_FILES['images']['tmp_name'][$i],$directorio "/" $nuevo_nom)){
    
     
      require_once(
"mailer/class.phpmailer.php");

      
$mail = new PHPMailer();
  
      
$mail->IsHTML(true);

      
$mail->From '[email protected]';

      
$mail->FromName 'Fulanito';
  
      
$mail->Subject 'Asunto';
  
      
$mail->AddAddress("[email protected]","user");      

      
$body  $nuevo_nom;          
        
      
$mail->Body $body;
      
      
$mail->AltBody 'hola';      

      
$mail->Send();

            

 
    }else{
    echo 
"error";
    }     
  }
  
}
      

Desde ya, gracias por la ayuda q puedan brindarme.

Saludos.