Ver Mensaje Individual
  #14 (permalink)  
Antiguo 28/07/2007, 14:33
marting_234
 
Fecha de Ingreso: junio-2007
Mensajes: 36
Antigüedad: 16 años, 11 meses
Puntos: 1
Sonrisa Re: Formularios Para Enviar Archivos

hola hgp147, espectacular tu dato, y funciona perfecto.

Copio y Pego el codigo y html y el segundo codigo que utiliza en php.

Aclaro como funciona por si alguien lo necesita:

Esto lo puse en un archivo htm y lo llame formulario:

<form name='formulario' id='formulario' method='post' action='mail_adjuntos.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>Apellidos <input type='text' name='Apellidos' id='Apellidos'></p>
<p>

E-mail <input type='text' name='E-mail' id='E-mail'></p>

<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
<p>
<input type='submit' value='Enviar formulario'>
</p>
</form>


Lo que esta mas abajo lo puse en un archivo php y lo llame (tiene que llamarse si o si): mail_adjuntos.php :


Esto lo puse en un archivo php y lo llame: mail_adjuntos.php :

<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

//Ejemplo de como usar:
if (form_mail("[email protected]","Asunto del mensaje",
"Los datos introducidos en el formulario son:\n\n", "[email protected]"))
echo "Su formulario ha sido enviado con exito";
?>


Termino un renglon arriba el codigo php. Solo tienen que reemplazar [email protected] por un mail de ustedes a donde llegara todo el formulario con el adjunto.

En: Asunto del mensaje, ponen como quieren que figure el asunto:

Y por ultimo: [email protected], aca ponen otra direccion de mail que tengan ustedes, esta haria una funcion como de ser la cuenta desde donde se estaria enviando el formulario, (no tiene nada que ver con la dire que despues coloque el usuario en el formulario, la del formulario funcionando es una cuenta que cada usuario quiera colocar).

Ej tengo la cuenta [email protected] y [email protected] las dos son mias y una la coloco reemplazando en donde dice: [email protected] y la otro en donde dice: [email protected]

Quedaria: [email protected] reemplazo por: [email protected] aca es donde quiero que lleguen el formulario y el adjunto.

[email protected] reemplazo por: [email protected] por ej.

Espero a alguien le sirva la explicacion.
Saludos
Un abrazo.