Comunidad de diseño web y desarrollo en internet online

Adjuntar archivo de tipo y tamaño especificado con php

Citar            
MensajeEscrito el 23 Nov 2008 05:14 am
Holas amigos de Cristalab, hace un par de dias estuve intentando hacer un formulario que pueda adjuntar archivos pdf con un tamaño maximo de 6mb en tanto busqué y busqué la solucion y por fin me encontré con un php que envia archivos adjuntos a un e-mail. lo malo es que sube cualquier tipo de archivo y de cualquier tamaño. por favor espero que alguien me ayude a encontrar la solucion para ponerle un limite de tamaño y seleccionar solo un tipo de archivo.

aqui les dejo el codigo

Código :

<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\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"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

if (form_mail("[email protected]", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";
?>

Por kernelgt

12 de clabLevel



Genero:Masculino  

2008

firefox
Citar            
MensajeEscrito el 23 Nov 2008 05:33 am
mezcla estos dos y te sale la solucion

http://www.codigolandia.com/art-Conocer+la+extencion+de+un+archivo+con+php-php-91.tc

y este

http://www.codigolandia.com/art-Mail+Con+Adjunto+-+Cualquier+Archivo-php-60.tc

configura los dato del server y para saber el tamaño utiliza $FILES['archivo']['size']

Saludos

Por talcual

686 de clabLevel



 

Colombia

firefox

 

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