Comunidad de diseño web y desarrollo en internet online

enviar archivo en un formulario

Citar            
MensajeEscrito el 08 Feb 2012 08:45 pm
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

Por goolumanael

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Dic 2017 08:44 am

Por nithi

Claber

247 de clabLevel



 

firefox

   Página 1 de 1

 

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