Autor Tema: adjuntar archivos en formulario de contacto con php  (Leído 4263 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
adjuntar archivos en formulario de contacto con php
« : enero 29, 2007, 04:53:15 pm »
hola como estan aca me encontre con una serie de objetos muy interesantes

yo necesito enviar desde un formulario correos electronicos a mi cuenta y que a esta me envie el mensaje y a la vez un archivo adjunto

asi que encotnre esto


este es el html
Código: [Seleccionar]

<form name="frm" id="frm" action="" method="post" enctype="multipart/form-data">
<dl>
<dt><label for="to" accesskey="1">Para</label></dt>
<dd><input type="text" name="to" id="to" size="60" /></dd>

<dt><label for="from" accesskey="2">De</label></dt>
<dd><input type="text" name="from" id="from" size="60" /></dd>

<dt><label for="sbj" accesskey="3">Asunto</label></dt>
<dd><input type="text" name="sbj" id="sbj" size="60" /></dd>

<dt><label for="msg" accesskey="4">Mensaje</label></dt>
<dd><textarea id="msg" name="msg" rows="7" cols="45"></textarea></dd>

<dt><label>Archivos Adjuntos:</label>&nbsp;&nbsp;&nbsp;<a href="#" onclick="addField()" accesskey="5">A&ntilde;adir Archivo</a></dt>
<dd><div id="files"></div></dd>
<dd><input type="submit" value="Enviar" id="postback" name="postback" accesskey="6" /></dd>
   </dl>
   </form>

javascript que me permite tener mas de un attachment a la vez

Código: [Seleccionar]
<script type="text/javascript">
var numero = 0;
 
// Funciones comunes
c= function (tag) { // Crea un elemento
   return document.createElement(tag);
}
d = function (id) { // Retorna un elemento en base al id
   return document.getElementById(id);
}
e = function (evt) { // Retorna el evento
   return (!evt) ? event : evt;
}
f = function (evt) { // Retorna el objeto que genera el evento
   return evt.srcElement ?  evt.srcElement : evt.target;
}
 
addField = function () {
   container = d('files');
   
   span = c('SPAN');
   span.className = 'file';
   span.id = 'file' + (++numero);
 
   field = c('INPUT');   
   field.name = 'archivos[]';
   field.type = 'file';
   
   a = c('A');
   a.name = span.id;
   a.href = '#';
   a.onclick = removeField;
   a.innerHTML = 'Quitar';
 
   span.appendChild(field);
   span.appendChild(a);
   container.appendChild(span);
}
removeField = function (evt) {
   lnk = f(e(evt));
   span = d(lnk.name);
   span.parentNode.removeChild(span);
}
</script>


Hasta Aqui todo bien

----------

este es el php que se encarga de realizar el envio

Código: [Seleccionar]
<?php 
include_once(
'class.phpmailer.php');
// Indica si los datos provienen del formulario
$postback=isset($_POST['postback']) ? true false;

if ($postback) {
extract($_POST);
$mail = new phpmailer ();
$mail -> From $from;
$mail -> FromName "BuayaCorp"# Puede obtenerse del formulario, por facilidad se hace de esta manera
$mail -> AddAddress ($to);
$mail -> Subject $sbj;
$mail -> Body $msg;
$mail -> IsHTML (true);
$archivos '';
$msg "Mensaje Enviado";

    if (isset ($_FILES["archivos"])) {
$msg .= "<ul>";
foreach ($_FILES["archivos"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name $_FILES["archivos"]["tmp_name"][$key];
$name $_FILES["archivos"]["name"][$key];
$msg .= "<li>$name</li>";
$name uniqid('bc') . '_' $name# Generar un nombre único para el archivo
$mail -> AddAttachment ($tmp_name$name);
/*
Si se van a guardar los archivos en un directorio, deberían descomentarse
las siguientes líneas, si se van a guardar los nombres 
de los archivos en una base de datos, aquí debería realizarse algo...
   
move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicación, debe tener los permisos necesarios
*/
#if
    # foreach
$msg .= '</ul>';
# if
if (!$mail -> Send ()){
$msg "No se pudo enviar el email";
}
}
?>

ok lo unico que me pide una clase llamada phpmailer, y aqui es donde quiero que me ayuden...
ya que necesito saber como instalarla, y ademas si se podria realizar de una manera mas sencilla... siempre con php grx  :dumb:


p.d. espero a alguien le sea de utilidad el codigo que encontre mas info en el link
http://www.buayacorp.com/archivos/enviar-o-subir-multiples-archivos-adjuntos-al-estilo-gmail/
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com