Subir un fichero al servidor de un determinado tipo

Una pequeña modificación al anterior programa para que sólo permita subir ficheros con extensiones .gif, .jpg y .png. Además el tamaño máximo es de 5K. El segundo argumento de la función es el directorio donde queremos

<?php

function subirfichero($nombre,$directorio)

{

$ruta_fichero = "$_SERVER[DOCUMENT_ROOT]/$directorio/";

if (!is_dir("$ruta_fichero")) mkdir("$ruta_fichero",0777);

$ruta_relativa ="$directorio/";

if (eregi("gif$|jpg$|png$",$_FILES[$nombre]['name']) && $_FILES[$nombre]['size'] <52000 )

{

$name=$_FILES[$nombre]['name'];

$name = ereg_replace("[^a-z0-9._]", "",str_replace(" ", "_", str_replace("%20", "_", strtolower($name))));

$location = $ruta_fichero.$name;

copy($_FILES[$nombre]['tmp_name'],$location);

unlink($_FILES[$nombre]['tmp_name']);

$fichero = $ruta_relativa.$name;

}

return($fichero);

}

echo '<head>

<title>'.$_SERVER[PHP_SELF].'</title>

</head>

<html>

<body>';

if(isset($_POST[boton]))

{

$subido=subirfichero("mifichero","subidos");

if (!empty($fichero))

echo 'Fichero subido como '.$subido.' correctamente';

else

echo 'Ha surgido un error con el fichero';

}

echo '<form action="'.$_SERVER[PHP_SELF].'" method="post" enctype=multipart/form-data>

Fichero: <input type=file name=mifichero>

<input type="submit" name=boton value="Subir">

</form>';

echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";

echo '</body>

</html>';

?>