Comunidad de diseño web y desarrollo en internet online

formulario + archivo adjunto

Citar            
MensajeEscrito el 08 Ene 2010 08:47 am
Hola. Estoy queriendo hacer una modificación en una web que tenía hecha en AS2. El asunto es que tengo un formulario de envio de correo normal y corriente y ahora necesito añadirle un botón que me sirva para adjuntar un archivo a ese correo. Buscando en los foros encontré un ejemplo de esto que me funciona perfectamente por su lado pero que no incluye campos de texto (nombre, mail, consulta,...) así que intenté hacer una fusión con lo que yo ya tenia pero no consigo que funcione. La parte php creo que está bien porque lo domino más que el AS2 pero aquí creo que tengo un problema en la parte del código que indica que mande el archivo, debe de ser por aqui:

Código ActionScript :

      if (correoCorrecto) {
         form_lv = new LoadVars();
         // mete los datos que se van a enviar
         // NOMBRE
         form_lv.nombre = nombre_txt.text;
         // EMAIL
         form_lv.email = email_txt.text;
         // CONSULTA
         form_lv.consulta = consulta_txt.text;
         // ARCHIVO ADJUNTO
         form_lv.Filedata = file.name;
         // se envian los datos
         form_lv.sendAndLoad("envio.php", form_lv, "POST");
         form_lv.onLoad = function() {
            trace("LLEGÓ");
            if (this.estatus == "ok") {
               respuesta_txt.text = "Su mensaje fue enviado. Muchas gracias.";
               // borra 
               nombre_txt.text = "";
               email_txt.text = "";
               comnsulta_txt.text = "";
            } else {
               respuesta_txt.text = "Problemas con el servidor. Intentelo de nuevo";
            }
         };
//ACCIONES DE LOS BOTONES
adjuntar_btn.onRelease = subir;
enviar_btn.onRelease = enviar;
borrar_btn.onRelease = borrar;



De todas formas qquí dejo el código completo por si veis algo más:

Código ActionScript :

//PARA ADJUNTAR UN ARCHIVO
import flash.net.FileReference;
var fileRef:FileReference = new FileReference();
var nombre_archivo:String;
function subir() {
   // estas 5 lineas limitan los tipos de archivos que pueden subirse a solo pdfs.
   var allTypes:Array = new Array();
   var imageTypes:Object = new Object();
   imageTypes.description = "Acrobat (*,pdf)";
   imageTypes.extension = "*.pdf";
   allTypes.push(imageTypes);
   var listener:Object = new Object();
   listener.onSelect = function(file:FileReference):Void  {
      if (Math.ceil(file.size/1024)>5000) {
         _root.alertar("El archivo no puede exceder los 5MB");
      } else {
         instx.text = file.name;
      }
   };
   listener.onComplete = function(file:FileReference):Void  {
      _root.alertar("ENVIO COMPLETADO");
      delete fileRef;
      delete listener;
   };
   listener.onHTTPError = function(file:FileReference, httpError:Number):Void  {
      _root.alertar("Error al enviar archivo. HTTPError: "+httpError);
   };
   listener.onIOError = function(file:FileReference):Void  {
      _root.alertar("Error al enviar archivo - IOError");
   };
   listener.onSecurityError = function(file:FileReference, errorString:String):Void  {
      _root.alertar("Error al enviar archivo. SecurityError: "+errorString);
   };
   fileRef.addListener(listener);
   fileRef.browse(allTypes);
}
function alertar(recibo) {
   getURL("javascript:alert('"+recibo+"')");
}
// PARA ENVIAR LOS DATOS DE LOS CAMPOS
enviar = function () {
   // si se debe enviar algun campo mas como obligatorio hay que añadirle a la siguiente linea
   if (nombre_txt.length && email_txt.length && consulta_txt.length && leido == true) {
      correoCorrecto = true;
      if (email_txt.length == 0) {
         correoCorrecto = false;
         /*una direccion de correo es del estilo de: "[email protected]". Lo que
         comprueba para ver si la direccion es correcta, es si tiene una "@" y un ".".
         Esto lo hace con la funcion "indexOf" que me da la posicion del caracter
         buscado indexOf si no encuentra el caracter devuelve "-1" si lo encuentra,
         devuelve la posicion del caracter dentro de la cadena, en el ejemplo
         anterior seria: 9*/
      } else if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
         correoCorrecto = true;
      } else {
         respuesta_txt.text = "Inserte una direccion de correo correcta";
         //email_txt.text="";
         correoCorrecto = false;
         return;
      }
      if (correoCorrecto) {
         form_lv = new LoadVars();
         // mete los datos que se van a enviar
         // NOMBRE
         form_lv.nombre = nombre_txt.text;
         // EMAIL
         form_lv.email = email_txt.text;
         // CONSULTA
         form_lv.consulta = consulta_txt.text;
         // ARCHIVO ADJUNTO
         form_lv.Filedata = file.name;
         // se envian los datos
         form_lv.sendAndLoad("envio.php", form_lv, "POST");
         respuesta_txt.text = "Enviando Mensaje...";
         gotoAndStop("gracias");
         // borra los datos para simular que se han enviado
         nombre_txt.text = "";
         email_txt.text = "";
         consulta_txt.text = "";
         respuesta_txt.text = "";
         form_lv.onLoad = function() {
            trace("LLEGÓ");
            if (this.estatus == "ok") {
               respuesta_txt.text = "Su mensaje fue enviado. Muchas gracias.";
               // borra 
               nombre_txt.text = "";
               email_txt.text = "";
               comnsulta_txt.text = "";
            } else {
               respuesta_txt.text = "Problemas con el servidor. Intentelo de nuevo";
            }
         };
      }
      // si alguno de los campos obligatorios no se ha rellenado                                             
   } else {
      respuesta_txt.text = "Debe rellenar todos los campos y aceptar la política"+"\n";
      respuesta_txt.text += "de privacidad";
   }
};
// PARA BORRAR LOS DATOS DE LOS CAMPOS
borrar = function () {
   nombre_txt.text = "";
   email_txt.text = "";
   consulta_txt.text = "";
   respuesta_txt.text = "";
};
//ACCIONES DE LOS BOTONES
adjuntar_btn.onRelease = subir;
enviar_btn.onRelease = enviar;
borrar_btn.onRelease = borrar;


Muchas gracias.

Por annna

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Ene 2010 09:11 am
bueno, al final creo que voy a pasar de hacerlo así porque a llegao a un punto que ya no sé ni por dónde cogerlo. lo único si teneis algún formulario que tenga al mismo tiempo campos de introducción de texto para nombre, mail, etc... y un apartado para adjuntar un archivo como hace outlook... es que por mucho que he buscado no he encontrado nada, que esté en as2, porque es como estaba echa la web y no puedo cambiarlo todo ahora.

Por annna

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Ene 2010 09:12 am
con "si teneis" me refiero a si conoceis algún tutorial o algo así, no a que me lo deis hecho.

Por annna

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ene 2010 03:27 am
Pues creo te has liado un poco. Lo más fácil para lograr lo que quieres, es mantener el código original y por separado el upload. Luego solo debes pasarle un comando más a tu form que tienes que ya conoces, que es el path del archivo, y ya el resto.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 12 Ene 2010 08:09 am
pero si mantengo el upload tengo 2 phps y me llegan 2 emails separados, uno con los datos del formulario y otro con el archivo adjunto, ¿no?, al menos es como lo hice al principio y es lo que me pasaba.

Por annna

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Ene 2010 03:10 am

annna escribió:

pero si mantengo el upload tengo 2 phps y me llegan 2 emails separados, uno con los datos del formulario y otro con el archivo adjunto, ¿no?, al menos es como lo hice al principio y es lo que me pasaba.


Pues no, usa un PHP para subir y otro para mandar. Una vez que subes el archivo mandas no tienes porque mandar dos mails.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 19 Ene 2010 11:18 am
me parece que no me da para tanto la cabeza :cry:

Por annna

46 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.