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.");
}
?>