Неправильно работает определение MIME (PHP vs IE)
Есть простое условие при upload-е картинки на сервер:
Код:
if (isset($_FILES['picture']['type'])
&& ($_FILES['picture']['type'] == 'image/jpeg'
|| $_FILES['picture']['type'] == 'image/gif'
|| $_FILES['picture']['type'] == 'image/png'))
{
///...
/// Выполняемый код загрузки и т.п.,
///если тип соответствует условиям
///...
}
else echo "Не правильный тип файла!
(должны быть только картинки jpeg/jpg, gif, png)
<a href=\"upload.php\">Попробуйте заново</a>.";
&& ($_FILES['picture']['type'] == 'image/jpeg'
|| $_FILES['picture']['type'] == 'image/gif'
|| $_FILES['picture']['type'] == 'image/png'))
{
///...
/// Выполняемый код загрузки и т.п.,
///если тип соответствует условиям
///...
}
else echo "Не правильный тип файла!
(должны быть только картинки jpeg/jpg, gif, png)
<a href=\"upload.php\">Попробуйте заново</a>.";
Так вот проблема в том, что, почему-то, всё работает на Mozilla Firefox 3.5.x
А вот на IE 8 условие не выполняется (с GIF страбатывает, а с JPG и PNG нет).
Как такое может быть?! Честно говоря, я вообще не представляю - при чем здесь браузер. Ведь проверка осуществляется на стороне сервера.
Помогите разобраться.
Что мешает сделать var_dump($_FILES) и посмотреть, что лежит в $_FILES['picture']['type']?? А уже оттуда плясать и думать.
Просто видимо при загрузке браузер передаёт информацию о MIME, поэтому и разница была при загрузке на IE и FF. Получилось, что те .jpg которые я загружал image/pjpeg, а png - image/x-png.
Добавил в условие, и всё.