problemas con formato de imagen

Iniciado por Geek7, 16 Julio 2013, 19:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Geek7

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:

Código (php) [Seleccionar]
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' />";   
}

#!drvy

#1
Te falta: image/jpg. Quedaría así:

Código (php) [Seleccionar]
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

Geek7

Me sigue dando el mismo die().

Como se puede falsificar???

#!drvy

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

Geek7

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.

#!drvy

#5
Perdon

Código (php) [Seleccionar]
echo var_dump($_FILES['filename']['type']);

Asi xD


Saludos