Flash - enviar archivo con formulario

   
Vista:

enviar archivo con formulario

Publicado por Santi (2 intervenciones) el 08/02/2012 21:59:46
Buenas noches a todos,
Vengo por aqui a ver si me podeis hechar una mano.
Tengo medio hecho un formulario para que se pueda adjuntar un archivo.
El archivo me lo manda pero no consigo poder adjuntar un campo con un nombre.
Las lineas de codigo son las siguientes.
PHP
<?php
// Copyright © McAnam.com
// http://www.mcanam.com/articulos/PHP.php?id=8

function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{

$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";
$sCuerpo = $sTexto;
$sSeparador = uniqid("_Separador-de-datos_");
$sTexto="Nombre del autor: $Nombre";
$sCabeceras = "MIME-version: 1.0\n";

// Recogemos los campos del formulario
foreach ($_POST as $sNombre => $sValor)
$sCuerpo = $sCuerpo."\n".$sNombre." = ".$sValor;


// Recorremos los Ficheros
foreach ($_FILES as $vAdjunto)
{

if ($bHayFicheros == 0)
{

// Hay ficheros

$bHayFicheros = 1;

// Cabeceras generales del mail
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"".$sSeparador."\"\n";

// Cabeceras del texto
$sCabeceraTexto = "--".$sSeparador."\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n\n";

$sCuerpo = $sCabeceraTexto.$sCuerpo;

}

// Se añade el fichero
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n--".$sSeparador."\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"], 'rb');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}

}

// Si hay ficheros se añaden al cuerpo
if ($bHayFicheros)
$sCuerpo .= $sAdjuntos."\n\n--".$sSeparador."--\n";


// Se añade la cabecera de destinatario
if ($sDe)$sCabeceras .= "From:".$sDe."\n";


// Por último se envia el mail
return(mail($sPara, $sAsunto, $sCuerpo, $sCabeceras));
}

//Ejemplo de como usar:
//if (form_mail("aquivaelmail",
// "Activación de formulario",
// "Los datos introducidos en el formulario son:\n",
// "usuario_enviado@dominio.com"))
//echo "Su formulario ha sido enviado con exito";

// Ejemplo de como usar, poniendo como remitente el campo pasado de E-mail

if (form_mail("aquivaelmail",
"Curriculum enviado desde la web",
"Los datos introducidos en el formulario son:\n",
"www.xipsandbits.com"))
echo "Su formulario ha sido enviado con exito";



?>

FLASH

btenviar._visible=0
import flash.net.FileReference;
form_lv = new LoadVars();
form_lv.Nombre = Nombre.text;
var fileRef:FileReference = new FileReference();
var nombre_archivo:String;
function subir_archivos(){
var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.jpg), Acrobat (*,pdf)";
imageTypes.extension = "*.jpg;*.pdf";
allTypes.push(imageTypes);
var listener:Object = new Object();
listener.onSelect = function(file:FileReference):Void {
if(Math.ceil(file.size/1024)>5000) {
btenviar._visible=0
_root.alertar("El archivo no puede exceder los 5MB")
}else{
instx.text=file.name;
btenviar._visible=1
btenviar._alpha=100
}
}
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+"')")
}
function enviar_archivo(){
//_root.alertar("Lo siento, pero el envío está desactivado")
fileReference.postData="$valor1="+Nombre.text;
if(!fileRef.upload("upload.php")) _root.alertar("Error al enviar archivo");

}

El campo de flash donde va el nombre es 'Nombre'

Un saludo y muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Flash
- Cursos de Flash
- Temas de Flash
información
Cursos y Temas de Flash
- Manual de Flash MX 2004. Intermedio
- Introducción a ActionScript
- Manual de Flash 4.0