Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2012, 14:28
kokokanelo
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 10 meses
Puntos: 0
Enviar adjunto formulario flash

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",
// "[email protected]"))
//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