Tenemos un simple formulario para elegir un fichero y subirlo al servidor y una pequeña rutina en PHP para verificar que el fichero es del tipo correcto (una imagen gif, jpeg o png) comprobando el Content-type enviado en la cabecera:
<?php
$valid_mime_types = array(
"image/gif",
"image/png",
"image/jpeg",
"image/pjpeg",
);
if(isset($_POST['upload']))
{
$destination = 'uploads/' . $_FILES['userfile']['name'];
if (in_array($_FILES['userfile']['type'], $valid_mime_types))
{
move_uploaded_file($_FILES['userfile']['tmp_name'], $destination);
echo "<div>Upload succesful: <a href='$destination'>here</a><a href=\"\">×</a></div>";
}
else
{
echo "<div>>Upload failed.<a href=\"\">×</a></div>";
}
}
?>
<form enctype="multipart/form-data" action="index.php" method="POST">
<fieldset>
<legend>Upload</legend>
<input name="userfile" class="small button" type="file" />
<input type="submit" class="small button" name="upload" id="upload" value="Upload" />
</fieldset>
</form>