Привет всем! Пишу код на PHP, который бы работал с определёнными файлами, загружаемыми на сервер через форму в браузере.. так вот, возникла проблема с определением типа файлов. А именно: после загрузки одного и того же файла через разные браузеры, переменная $_FILES['userfile']['type'] имеет разные значение... причём, то, что у IE одно, у FF может быть другим.. короче, в двух словах - сплошной гемморой.. можно ли как-то иным способом определить тип загружаемого на сервер файла?
Robin777, ты путаешь. У хостера на сервере лежит файл с мимтипами. При загрузке: сервер берёт расширение, открывает файл с типами и по нему ищет расширение. Совпадает - тогда файлу присваивается мимтип. Твоя проблема, вероятнее всего, в твоём хостере. Особенно, если это localhost.
Эм... если я правильно понял, браузер при загрузке передаёт тип файла серверу, который можно уже получить из $_FILES['userfile']['type']... разве это не так?
Не, браузер читает тип только при скачивании, но не при заливке файла. Тип в $_FILES определяет сервер. P.S. Что у тебя за хостер/локальный сервер?
У меня виртуальный хостинг.... Славхост (ruskyhost.ru)... не понимаю.. настроен верно... У кого есть хостинг, попробуйте протестировать в разных браузерах форму загрузки файла и код с "echo $_FILES['userfile']['type']"... уверен, на экране будет выводится разный mime... например, .jpg, загруженный через FF отобразит jpeg, а IE нам выдаст pjpeg...
Что касается картинок, то открывать с помощью gd/imagemagick, проверять/ресайзить/обрезать до нужного размера и сохранять в нужном формате.
Скажите, а можно опредилть MIME type картинки не по расширению, а именно открыв и считав с нее хидер? Ведь именно в хидере должна быть информация про файл. Есть какие-то готовые решения по этому поводу. Нужно узнать картинка ли это. Если да, то какая - жпг или гиф или пнг или другая.
AlexGousev, Не ты не понял, в png картинки можно вставить JS код, тобишь XSS, и при этом картинка будет нормально работать...
Это как? Вообще-то картинка открывается браузером как картинка, пусть хоть там музыка спрятана, тебе все равно будут выводиться пиксели. Это через пдф можно XSS сделать, если на сервере недостаточная проверка.
Ну я так понимаю, вот как раз это уже и зависит от настроек сервера, так? Впринципе, как раз то, что нужно...
Я все понял Открываешь картинку и сохраняешь с нужными размерами без всякой доп. инфы. Т.е. при загрузке картинку всегда обрабатываешь. Да, теряется качество из-за того, что еще раз сжали.
Странно.. использую mime_content_type()... Появляется ошибка: Fatal error: Call to undefined function mime_content_type() Что не так??