Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2010, 11:23
cstudio
 
Fecha de Ingreso: julio-2009
Mensajes: 74
Antigüedad: 14 años, 9 meses
Puntos: 5
Limitar peso y tipo de archivo en formulario

Hola que tal amigos, les envio un saludo quiero despejar algunas inquietudes respecto a un codigo que puse a prueba y funciono muy bien.

Me gustaria saber si puedes modificar el codigo para realizar las siguientes acciones en un envio.

*El peso del archivo a enviar adjunto (ejemplo que solo acepte como limite ficheros de 300k).

*Aceptar solo uno o mas tipos de archivos (ejemplo solo jpg o gif o ambos)

*Y si no cumpliese con estos 2 casos se le pudiera mostrar un popup marcando su error o bien que lo lleve a una pagina de aviso y me marque el error y le diga que vuelva a entrar al formularioa intentarlo correctamente.

Aqui les paso el codigo php

Código PHP:
<?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($oFicherofilesize($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";
?>

Les agredeceria sus comentarios acerca de tema, he estado investigando y cogiendo algunas lineas de codigo por otros lados y editando la parte del tamaño en el codigo y no he tenido exito, el codigo me parecio sencillo y comodo solo me gustaria saber con gente con experiencia que tan editable es para realizar lo que busco, gracias.