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>';
?>