Foros del Web » Programando para Internet » PHP »

Enviar archivo adjunto

Estas en el tema de Enviar archivo adjunto en el foro de PHP en Foros del Web. Muy buenas a todos. A ver. Esto lo he buscado por el foro y aunque hay algunos ejemplos no logro adaptarlo a mi caso. Os ...
  #1 (permalink)  
Antiguo 12/05/2008, 09:10
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Enviar archivo adjunto

Muy buenas a todos. A ver. Esto lo he buscado por el foro y aunque hay algunos ejemplos no logro adaptarlo a mi caso. Os cuento (un poco simplificado):

tengo un formulario que me envía los siguientes datos:

Código HTML:
<form name='form' id='form' action=procesar.php ENCTYPE='multipart/form-data' METHOD='POST'>
Nombre: <input type="text" name="nombre"></input><br>
Apellidos: <input type="text" name="apellidos"></input><br>
Email: <input type="text" name="email"></input><br>
C.V.: <input type="file" name="curriculum"></input>
</form> 
el archivo procesar.php tiene los siguientes elementos:
Código PHP:
$sendTo "[email protected]"//el email donde llegan los correos
$subject "Enivado desde mi página";
$sitename "Alguien ha enviado este mensaje"

$headers "Web Oficial"$_POST["nombre"] ." <" $_POST["email"] .">\r\n";


$nombre $_POST["nombre"];
$apellidos $_POST["apellidos"];
$curriculum $_POST["curriculum "];
$email$_POST["email"];



mail("$sendTo""$subject",

"     
$nombre $apellidos 
$curriculum 
$email"
,"$headers"); 
bien. el email me llega correctamente pero obviamente no me adjunta nada. cómo lo hago? he probado adaptar alguna solución aquí expuesta pero nada. por favor ayudadme. es muy urgente.
gracias a todos
  #2 (permalink)  
Antiguo 12/05/2008, 09:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Enviar archivo adjunto

$_POST["curriculum "]; asi NO se leen los archivos recibidos como UPLOADs ..... debes estudiar acerca de la superglobal $_FILES y como guardar los archivos subidos .... cuando lo hagas, avisas...
  #3 (permalink)  
Antiguo 12/05/2008, 09:31
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Enviar archivo adjunto

hola pateketrueke. antes de nada gracias por tu amable respuesta. posiblemente es gracias a colaboraciones como la tuya a lo que el foro ha llegado a donde está (nótese la ironía). bien. es evidente que si lo pongo es por que mi nivel de php aun no llega a la suela de lo que por aquí hay. pero también es evidente que precisamente por eso solicito la ayuda. y créeme: cuando pido ayuda por aquí es porque previamente he agotado todas las vías de conocimiento para acotar una solución (también el intentar comprender lo que tu me indicas).

cualquier otra ayuda será (de corazón) bien recibida. gracias por todos (a tí también pateketrueke)
  #4 (permalink)  
Antiguo 12/05/2008, 10:20
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Enviar archivo adjunto

alguien me echa una mano?
  #5 (permalink)  
Antiguo 12/05/2008, 10:37
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Re: Enviar archivo adjunto

No se mucho de mails pero si t puede ayudar en la parte de los $_FILES

primero el form que utilices debe ser de un tipo especial que reciba datos
Código HTML:
<form enctype="multipart/form-data" action="uploader.php" method="POST">

Archivo : <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload" />
</form> 

Despues para el código php

Código PHP:
 $_FILES 
es un array donde se guarda la informacion del archivo como:

Código PHP:
// donde guardas el archivo 
$ruta "archivos/";

$ruta $ruta basename$_FILES['uploadedfile']['name']); 
$_FILES['uploadedfile']['tmp_name'];  




if(
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $ruta)) {
    echo 
"el archivo".  basename$_FILES['uploadedfile']['name']). 
    
" se guardó";
} else{
    echo 
"error!";

aHORA SI PATEKETRUEKE T PODRÁ ECHAR UNA MANO
  #6 (permalink)  
Antiguo 12/05/2008, 10:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Enviar archivo adjunto

Hola estibaliz2006,

Te recomiendo leer esto: http://www.forosdelweb.com/f18/faqs-...00/#post249389, posteriormente puedes adjuntar un archivo usando la clase PHPMailer.

Saludos.
  #7 (permalink)  
Antiguo 12/05/2008, 10:52
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Re: Enviar archivo adjunto

eN EL LINK DE gATORv VIENE TODO :) DALE UNA LEÍDA SI TIENES DUDAS O T ATORAS PUES PUEDES VOLVER A POSTEAR
  #8 (permalink)  
Antiguo 12/05/2008, 10:56
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Re: Enviar archivo adjunto

Con la funcion mail de php no puedes enviar adjuntos, necesitas descargarte una librería que te permita hacerlo, como phpmailer, puedes descargarla desde http://sourceforge.net/project/showfiles.php?group_id=26031 y encontraras un manual en http://www.programacion.com/php/articulo/phpmailer/, eso si como te dijeron antes deberas utilizar de forma correcta la ariable $_FILES para poder utilizar el archivo que subas. Saludos
  #9 (permalink)  
Antiguo 12/05/2008, 20:41
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Re: Enviar archivo adjunto

estibaliz2006:
Te menciono tres cosas>
1.- Subir y seguidamente enviar da muchos problemas en php, es mas recomendable separar las funciones para que todo salga bien. Primero subir el archivo y hacer una pausa para despues enviarlo.
2.- El archivo que subes debes cifrarlo o codificarlo con base64_encode de php
y posteriormente sera parte de la variable $curriculum.
3.- La diferencia entre la funcion mail de php y la clase phpmailer es que esta ultima permite autenticar al usuario que envia en cambio la funcion mail no tiene forma para autenticar a un usuario y por ello los servidores bloquean el envio; a menos que el servidor permita el "relay" basado en dominio o IP del usuario que envia.
Saludos
Franco
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 04:47.