Tengo unas imagenes en formato jpg, e intento subirlas en mi localhost pero las imnagenes con formato *.jpg no las puedo subir mientras que las *.JPG si. Este es mi codigo:
if($_FILES)
{
$filename = $_FILES['filename']['name'];
$filetype = $_FILES['filename']['type'];
$filesize = $_FILES['filename']['size'];
switch ($filetype)
{
case 'image/jpeg':
$filetype = "jpg";
break;
case 'image/png':
$filetype = "png";
break;
default:
$filetype = "";
}
if($filetype == "")
{
die('No es una imagen');
}
if ($filesize > 400000)
{
die("Archivo muy grande");
}
move_uploaded_file($_FILES['filename']['tmp_name'], $filename);
echo "Imagen $filename: <img src='$filename' />";
}
Te falta: image/jpg. Quedaría así:
switch ($filetype)
{
case 'image/jpeg':
case 'image/jpg':
$filetype = "jpg";
break;
case 'image/png':
$filetype = "png";
break;
default:
$filetype = "";
break;
}
PD: No te fíes solo del tipo de imagen, comprueba siempre la extensión. El type se puede falsificar.
Saludos
Me sigue dando el mismo die().
Como se puede falsificar???
echo var_dump($filetype); Fijate en lo que te imprime y veras el porque.
CitarComo se puede falsificar???
Modificando los headers al hacer la consulta.
Saludos
Me dice:string '' (length=0). Pense que era por elupload_max_filesize que estaba en 2MB y los archivos eran de +3MB, pero no es eso.
Perdon
echo var_dump($_FILES['filename']['type']);
Asi xD
Saludos