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";
}
}
}
}
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";
}
}
}
}
Saludos.