Foros del Web » Programando para Internet » PHP »

Poner el mismo nombre en un attachment

Estas en el tema de Poner el mismo nombre en un attachment en el foro de PHP en Foros del Web. Hola: Estoy haciendo un pequeño formulario que envia un attachment a un email mediante un PHP, pero lo que no consigo es poner en el ...
  #1 (permalink)  
Antiguo 17/02/2004, 09:54
 
Fecha de Ingreso: abril-2001
Mensajes: 31
Antigüedad: 16 años, 7 meses
Puntos: 0
Poner el mismo nombre en un attachment

Hola:
Estoy haciendo un pequeño formulario que envia un attachment a un email mediante un PHP, pero lo que no consigo es poner en el email que llega el mismo nombre del archivo del que lo envia.
Por tanto pongo un nombre fijo, pero lo que yo quiero es que en el email llegue el mismo nombre del archivo original

En HTML que uso seria algo asi:

------------------------------------------------
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" enctype="multipart/form-data" method="post" action="enviaArchivo.php">
<input type="file" name="archivoEnviado">
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>
----------------------------------------------

Y en PHP algo asi:

Código PHP:
<?php 
$archivo 
$archivoEnviado// ruta al archivo           
$archivoType "application/octet-stream"// tipo de archivo
$archivoNombre "miArchivo"// NOMBRE, AQUI ES DONDE PONGO ALGO FIJO

$remitente "[email protected]"
$asunto "Envío de archivo"
$texto "Hola, aquí le llega un attachment"// mensaje del email

$destino "[email protected]"

$headers "From: ".$remitente

$file fopen($archivo,'rb'); 
$data fread($file,filesize($archivo)); 
fclose($file); 

$semi_rand md5(time()); 
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x"
    
$headers .= "\nMIME-Version: 1.0\n" 
            
"Content-Type: multipart/mixed;\n" 
            
" boundary=\"{$mime_boundary}\""

$mensaje .= "This is a multi-part message in MIME format.\n\n" $texto 
                
"--{$mime_boundary}\n" 
                
"Content-Type:text/html; charset=\"iso-8859-1\"\n" 
               
"Content-Transfer-Encoding: 7bit\n\n" 
$mensaje "\n\n"

$data chunk_split(base64_encode($data)); 

$mensaje .= "--{$mime_boundary}\n" 
                  
"Content-Type: {$archivoType};\n" 
                  
" name=\"{$archivoNombre}\"\n" 
                  
"Content-Transfer-Encoding: base64\n\n" 
                 
$data "\n\n" 
                  
"--{$mime_boundary}--\n"

$ok = @mail($destino$asunto$mensaje$headers); 

if(
$ok) { 
echo 
"<font face=verdana size=2>El mensaje se ha enviado correctamente.</font>".$archivoEnviado
} else { 
die(
"Lo sentimos, pero el email no pudo ser enviado. Por favor vuelva e intenténtelo de nuevo."); 


?>
Gracias
  #2 (permalink)  
Antiguo 17/02/2004, 10:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Pues el nombre del fichero te tendria que venir en $archivoEnviado_name o usando superglobales $_FILES['archivoEnviado']['name'] . Mas info http://www.php.net/manual/en/features.file-upload.php

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/02/2004, 11:45
 
Fecha de Ingreso: abril-2001
Mensajes: 31
Antigüedad: 16 años, 7 meses
Puntos: 0
Gracias Josemi.

Las dos formas me han funcionado correctamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:57.