Foros del Web » Programando para Internet » PHP »

[Ayuda] Error upload de imágenes y phpmailer.

Estas en el tema de [Ayuda] Error upload de imágenes y phpmailer. en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/02/2011, 00:58
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 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.
  #2 (permalink)  
Antiguo 08/02/2011, 01:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Tenés que sacar el envio del mail del for.
  #3 (permalink)  
Antiguo 08/02/2011, 01:32
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Eso tambien hice pero me envia una sola imagen por mas q suba dos o mas... no le encuentro la vuelta.
  #4 (permalink)  
Antiguo 08/02/2011, 01:39
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Claro, te envía la última que encuentra en el for. Tenés que concatenar las imágenes o algo parecido.
  #5 (permalink)  
Antiguo 08/02/2011, 14:14
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

La verdad no puedo resolverlo aun. Intente varias opciones q vi en internet pero con todas me sigue enviando solo una imagen al correo pero utilizando echo y print si me muestra todas las imagenes del bucle.
  #6 (permalink)  
Antiguo 08/02/2011, 16:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Podés poner el código que genera? el que supuestamente enviás por correo?
  #7 (permalink)  
Antiguo 08/02/2011, 16:53
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Es el q figura arriba, lo q hace ese codigo es enviar las imagenes al correo y funciona bien, solo q no puedo solucionar el tema de enviar todas las imagenes, solo envia una sola.

En realidad es para un formulario de contacto para publicar avisos clasificados o publicidad, donde el usuario ingrese sus datos y ademas q envie imagenes de lo q quiera publicar, pero primero estoy probando lo de las imagenes.

Anteriormente habia hecho el form para enviar una sola imagen y despues dije: pero si el usuario quiere enviar dos o mas imagenes?, entonces recurri al codigo q puse arriba y ahi empezo el problema de enviar dos o mas imagenes.

No puedo solucionar lo del bucle for para enviar todas las imagenes al correo, como dije antes, si yo imprimo $nuevo_nom salen todas las imagenes, o sea q funciona bien, pero no lo puedo hacer funcionar con phpmailer.

El codigo es ese, no tengo otro. Despues pienso extenderlo para q el usuario ingrese sus datos y demas.
  #8 (permalink)  
Antiguo 08/02/2011, 16:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

En realidad lo que te pedí que pongas, es el código ya generado y no el php. Es para saber como está saliendo ese código antes de llegar a la clase de email
  #9 (permalink)  
Antiguo 08/02/2011, 17:06
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

No entiendo Walter, te referis al que sale despues q envio las imagenes?
  #10 (permalink)  
Antiguo 08/02/2011, 17:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

No, el código html que se genera en el for de las imágenes, lo que se envía por mail ( ya generado ), por ejemplo: "<img src='xxxxx' />"
  #11 (permalink)  
Antiguo 08/02/2011, 17:22
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Exactamente eso sale:

<img src="http://pruebayejemplos.net23.net/foto/4443imagen.JPG" border="0" />


...claro q en el for puse:

echo '<img src="http://pruebayejemplos.net23.net/foto/'.$nuevo_img.'" border="0" />';

Se puede probar en: http://pruebayejemplos.net23.net/varias.php
  #12 (permalink)  
Antiguo 08/02/2011, 17:31
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Probá así a ver si funca:

Código PHP:
Ver original
  1. <?php
  2.  
  3. /**
  4.  * @author walter
  5.  * @copyright 2011
  6.  */
  7.  
  8.  
  9.  
  10. if (isset ($_FILES["images"])) {        
  11.  
  12.  
  13. $concat_imagenes = "";
  14.  
  15.          $cant = count($_FILES["images"]["name"]);
  16.        
  17.  
  18.          for ($i = 0; $i < $cant; $i++){
  19.  
  20.             $tmp_name = $_FILES["images"]["tmp_name"][$i];
  21.             $nombre_img = $_FILES["images"]["name"][$i];
  22.             $tipo_img = $_FILES["images"]["type"][$i];
  23.             $size_img = $_FILES["images"]["size"][$i];
  24.  
  25. if (!((strpos($tipo_img, "gif") || strpos($tipo_img, "jpeg") || strpos($tipo_img, "png")) && (    $size_img < 200000)))
  26. {
  27.     echo "Recuerde: el tamaño de las imágenes no deben pasar los 200 kb y se permiten extensiones .gif  .jpg y .png";
  28.     echo '<a href="javascript:history.back(1)">Volver Atrás</a>';  
  29. }
  30. else
  31. {
  32.  
  33.              
  34. $random_digit=rand(0000,9999);
  35.  
  36. //combino el numero con el nombre
  37.  
  38.     $nuevo_nom=$random_digit.$nombre_img;
  39.    
  40.     $directorio = 'images/';
  41.    
  42.  
  43.     if (move_uploaded_file($_FILES['images']['tmp_name'][$i],$directorio . "/" . $nuevo_nom)){
  44.    
  45.     $concat_imagenes .= $nuevo_nom;
  46.  
  47.     }else{
  48.     echo "error";
  49.     }    
  50.   }
  51.  
  52. }
  53. if(!empty($concat_imagenes)) {
  54.       require_once("mailer/class.phpmailer.php");
  55.  
  56.       $mail = new PHPMailer();
  57.  
  58.       $mail->IsHTML(true);
  59.  
  60.       $mail->From = '[email protected]';
  61.  
  62.       $mail->FromName = 'Fulanito';
  63.  
  64.       $mail->Subject = 'Asunto';
  65.  
  66.       $mail->AddAddress("[email protected]","user");                
  67.        
  68.       $mail->Body = $concat_imagenes;
  69.      
  70.       $mail->AltBody = 'hola';      
  71.  
  72.       $mail->Send();  
  73.    
  74. }
  75.  
  76.      
  77. }  
  78. ?>
  #13 (permalink)  
Antiguo 08/02/2011, 17:33
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Oka, ya te digo.
  #14 (permalink)  
Antiguo 08/02/2011, 17:48
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Me da como q lo envia todo bien, pero el correo no llega.
Aclaro q cambie los datos del phpmailer para q me llegue a mi correo, pero no llega.

Voy a revisar a ver si me olvide de cambiar algo.
  #15 (permalink)  
Antiguo 08/02/2011, 18:12
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Si funciona a la perfeccion ahora.
Es q no llegaba porq estaba usando 000webhost y ahora lo probe con el hosting q contrate y anduvo de lujo. Me lo envia a mi corre yahoo.



Recien me doy cuenta, era por el .= ?, es mas, anoche al probar yo hice al revez, deje en el for: $img = $nuevo_nom ... y en el cuerpo del mail puse:

$mail->Body = $nuevo_nom;

$mail->Body .= $nuevo_nom;

...pensado q lo iba a tomar xD

Otra cosa: el if(!empty($concat_imagenes)) como lo tomaria?, yo lo entiendo como q si esta vacio q mande igual el mail o no es asi?
Soy novato en esto aun.

Gracias por la ayuda y la paciencia.

Saludos.

Última edición por reborn; 08/02/2011 a las 18:18
  #16 (permalink)  
Antiguo 08/02/2011, 19:30
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

En realidad puse ese if(!empty()) para que no lo envíe, porque no habría imágenes concatenadas, pero vos lo adecuarás a tu aplicación.
  #17 (permalink)  
Antiguo 08/02/2011, 19:56
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: [Ayuda] Error upload de imágenes y phpmailer.

Ok, muchas gracias Walter.
Saludos.

Etiquetas: phpmailer, upload
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 01:20.