Comunidad de diseño web y desarrollo en internet online

Enviar archivo adjunto a php desde action script 2

Citar            
MensajeEscrito el 16 Feb 2011 10:31 pm
Buenas!
Resulta que he conseguido obtener el archivo con un browser desde mi ordenador en flash, pero el problema es que ahora necesito mandarlo a php y que este lo envie al correo adjunto a la demas informacion de un formulario que tengo en el mismo sitio que el browser.
Alguna sugerencia??

Muchas gracias!!!

Por unpezglobo

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 01:10 am
Usa la librería phpMailer, es la mejor para estas cosas.

Muevo a PHP esta tema, es más de ese foro.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 17 Feb 2011 10:48 pm
Creo que no me he explicado bien...

A ver yo tengo en flash este codigo:
on(press) {

import flash.net.FileReference;

var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";
allTypes.push(imageTypes);

var textTypes:Object = new Object();
textTypes.description = "Text Files (*.txt, *.rtf)";
textTypes.extension = "*.txt;*.rtf";
allTypes.push(textTypes);

var listener:Object = new Object();

listener.onSelect = function(file:FileReference):Void {
//trace("onSelect: " + file.name);
datos.text += "seleccionado: " + file.name + "\n";
if(!file.upload("http://www.yourdomain.com/yourUploadHandlerScript.cfm")) {
trace("Upload dialog failed to open.");
}
}

listener.onCancel = function(file:FileReference):Void {
//trace("onCancel");
datos.text += "Selección cancelada" + "\n";
}

listener.onOpen = function(file:FileReference):Void {
//trace("onOpen: " + file.name);
datos.text += file.name + " abierto.\n";
}

listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
//trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
datos.text += "cargados " + bytesLoaded + " bytes de " + bytesTotal + "\n";
}

listener.onComplete = function(file:FileReference):Void {
//trace("onComplete: " + file.name);
datos.text += "Completado!\n";
}

listener.onHTTPError = function(file:FileReference):Void {
trace("onHTTPError: " + file.name);
}

listener.onIOError = function(file:FileReference):Void {
trace("onIOError: " + file.name);
}

listener.onSecurityError = function(file:FileReference, errorString:String):Void {
trace("onSecurityError: " + file.name + " errorString: " + errorString);
}

var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse(allTypes);


}

Y con este codigo consigo "coger" un archivo desde mi ordenador.

Pues bien, lo que no tengo ni idea es del paso siguiente, es decir, conseguir mandarlo a php para que este lo envie adjunto en un correo.

Creo que ahora si jeje :)

Gracias!!

Por unpezglobo

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2011 04:56 am
Pues bien, primer paso, no lo programe dentro de un botón. Se decente.

Segundo paso, googlea "upload file PHP" encontrarás mucha info de como hacerlo.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 04 Mar 2011 04:09 pm
:S

Por unpezglobo

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Mar 2011 04:15 pm
A ver...

Por un lado tengo mi boton upload que me funciona perfectamente y me sube al servidor el archivo y lo mete en una carpeta que se crea por defecto llamada files, y el codigo php que uso es el siguiente:

<?php
//create the directory if doesn't exists (should have write permissons)
if(!is_dir("./files")) mkdir("./files", 0755);
//move the uploaded file
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./files/".$_FILES['Filedata']['name']);
chmod("./files/".$_FILES['Filedata']['name'], 0777);
?>


Por otro lado tengo el formulario de contacto en flash, en el mismo clip de pelicula que el boton upload, que me funciona perfectamente con este codigo php:

<?php



$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
$contact_message = $_POST['message'];


if( $contact_name == true )
{
$sender = $contact_email;
$receiver = "[email protected]";
$client_ip = $_SERVER['REMOTE_ADDR'];
$email_body = "Name: $contact_name \nEmail: $sender \nSubject: $contact_subject \nMessage: $contact_message";
$extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion();


if( mail( $receiver, "Flash Contact Form - $subject", $email_body, $extra, $archivo ) )
{
echo "success=yes";
}
else
{
echo "success=no";
}
}
?>

Mi problema es que necesito adjuntar al correo que ya envio, el archivo que tengo en el servidor que he subido con el upload. Lo tengo todo pero no termino de solucionar el problema. He probado con phpmailer pero no se muy bien como mezclar el codigo o donde insertarlo.
Este tema me trae de cabeza y me estoy volviendo loco, toda ayuda es bien recibida, gracias de antemano.

Saludos!!!

Por unpezglobo

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Mar 2011 05:26 pm
Como te han dicho, usa la biblioteca PHPMailer. Te ahorrará un par de dolores de cabeza ;)

http://phpmailer.worxware.com/index.php?pg=tutorial#3

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Mar 2011 05:44 pm
Ok, he vuelto a intentarlo, pero no se lo que falla, os pongo el codigo a ver si veis algo raro...

<?php

require("class.phpmailer.php");


$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
$contact_message = $_POST['message'];


if( $contact_name == true )
{
$sender = $contact_email;
$receiver = "[email protected]";
$client_ip = $_SERVER['REMOTE_ADDR'];
$email_body = "Name: $contact_name \nEmail: $sender \nSubject: $contact_subject \nMessage: $contact_message";
$extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion();
//aqui añado una variable que llamo archivo y uso el codigo que me indica el phpmailer, no se si lo que falla es la ruta del archivo o no se
$archivo = AddAttachment("files/$_FILES['Filedata']['name']");


if( mail( $receiver, "Flash Contact Form - $subject", $email_body, $extra, $archivo ) )
{
echo "success=yes";
}
else
{
echo "success=no";
}
}
?>

Por unpezglobo

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Mar 2011 07:29 pm
Pues sí, eso no es phpMailer, eso es algo raro. Busca aquí en Clab hay un buen tutorial de eso.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome

 

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