Foros del Web » Programando para Internet » PHP »

formulario que adjunta imagen para enviar por email

Estas en el tema de formulario que adjunta imagen para enviar por email en el foro de PHP en Foros del Web. Buenas, tengo un formulario que valida los campos con jquery validate, en este quiero que me puedan adjuntar una imagen, esta imagen tiene un peso ...
  #1 (permalink)  
Antiguo 15/09/2011, 07:05
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
formulario que adjunta imagen para enviar por email

Buenas,
tengo un formulario que valida los campos con jquery validate, en este quiero que me puedan adjuntar una imagen, esta imagen tiene un peso maximo, estoy probando con la clase phpmailer,me llegan los datos pero no me llega la imagen, he mirao por varios sitios pero no logro entenderlo bien.
haber si me podeis echar una mano, el objetivo es poder adjuntar una imagen a este formulario.
siempre me aparece encima del formulario esto
El tamaño del archivo es demasiado elevado. Maximo tamaño de ficheros permitido: 100Kb

este es el codigo del formulario
Código PHP:
Ver original
  1. <form id="captchaform" enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="post">
  2. <fieldset>
  3. <div id="id=commentForm">
  4. <label>
  5.       Name:
  6.       &nbsp;<input  class="required" name="nombre" type="text" />
  7.     </label>
  8.     <label>
  9.     <br />
  10.       Phone:
  11.       <input name="telefono" type="text" />
  12.      </label>
  13.      <label>
  14.      <br />
  15.       Email:
  16.       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="required email" name="email" type="text" />
  17.     </label>
  18.      <label>
  19.      <br />
  20.       Subject:
  21.       &nbsp;&nbsp;&nbsp;&nbsp;<input class="required" name="Subject" type="text" />
  22.     </label>
  23.     <label>
  24.      <br />
  25.       Message:
  26.       <br /><textarea class="required"  name="mensaje" rows="6" cols="50"></textarea>
  27.     </label>
  28. <label for="archivo">Archivo a adjuntar:<input type="file" name="archivo" id="archivo" /></label>
  29. </div>
  30.  
  31.  
  32. </fieldset>
  33.    
  34.     <input name="submit" id="submit" type="submit" value="Enviar" />
  35. </form>
  36.  
  37.  
  38. <?php
  39. }else{
  40.   $mensaje="Mensaje enviado desde la pagina web";
  41.   $mensaje.= "\nNombre: ". $_POST['nombre'];
  42.   $mensaje.= "\nEmail: ".$_POST['email'];
  43.   $mensaje.= "\nTelefono: ". $_POST['telefono'];
  44.   $mensaje.= "\nSubject: ". $_POST['Subject'];
  45.   $mensaje.= "\nMensaje: \n".$_POST['mensaje'];
  46.   $destino= "[email protected]";
  47.   $remitente = $_POST['email'];
  48.   $Subject = "Mensaje enviado por: ".$_POST['nombre'];
  49.   mail($destino,$Subject,$mensaje,"FROM: $remitente");
  50. ?>
y este el php que añado

Código PHP:
Ver original
  1. $nombre_archivo = $HTTP_POST_FILES['adjunto']['name'];
  2.       $tamano_archivo = $HTTP_POST_FILES['adjunto']['size'];
  3.  
  4.        if($tamano_archivo < 1000)
  5.        {
  6.            if (move_uploaded_file($HTTP_POST_FILES['adjunto']['tmp_name'], "adjuntos/".$nombre_archivo) == false){
  7.                 echo "Ocurrió algún error al subir el fichero al servidor. El fichero adjunto no pudo ser enviado";
  8.            }
  9.            else
  10.            {
  11.               $mail->AddAttachment("adjuntos/".$nombre_archivo,$nombre_archivo);
  12.               $subido = true;
  13.             }
  14.        }
  15.        else
  16.             echo "El tamaño del archivo es demasiado elevado. Maximo tamaño de ficheros permitido: 100Kb";
  17.  
  18. move_uploaded_file($HTTP_POST_FILES['adjunto']['tmp_name'], "adjuntos/".$nombre_archivo)

tambien arriba tengo un
Código PHP:
Ver original
  1. include ="class.phpmailer.php";
y he añadido el directorio adjuntos en el servidor
  #2 (permalink)  
Antiguo 15/09/2011, 07:19
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: formulario que adjunta imagen para enviar por email

cambia esto $HTTP_POST_FILES por $_FILES

Pero vos mandas el mail con la funcion mail de php por un lado y el
archivo con phpmailer por el otro!
usas uno o el otro
  #3 (permalink)  
Antiguo 15/09/2011, 09:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: formulario que adjunta imagen para enviar por email

gracias por la respuesta pero todavia no lo he solucionado

he cambiado $HTTP_POST_FILES por $_FILES

pero no entiendo lo que dices que utilizo la clase mail y la clase phpmailer ¿tendria que cambiar algo en esta linea?
mail($destino,$Subject,$mensaje,"FROM: $remitente");
  #4 (permalink)  
Antiguo 15/09/2011, 09:45
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: formulario que adjunta imagen para enviar por email

claro por que tenes que usar uno o el otro.

aca te dejo un link http://downloads.redusers.com.s3.ama...hpproyecto.exe
hay proyectos php muy bueno, en el primer capitulo te dice como enviar mails con imagenes
  #5 (permalink)  
Antiguo 15/09/2011, 11:46
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: formulario que adjunta imagen para enviar por email

gracias patriarka por los archivos, de todas formas he abierto el proyecto 1 y si que sale un formulario que adjunta imagenes, pero no veo ninguna explicación.
de todas formas lo que queria era adjuntar una imagen a este formulario que tengo, seguire intentando
  #6 (permalink)  
Antiguo 15/09/2011, 11:59
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: formulario que adjunta imagen para enviar por email

y pero lee el codigo amigo!
queres que te mande el manual por correo?
fijate vas a ver que es una pavada

Etiquetas: email, formulario
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 14:20.