Убедитесь, что загруженный файл является изображением в App Engine - PullRequest
2 голосов
/ 24 февраля 2012

Я выполняю загрузку изображений, как описано в документации для API образов App Engine, использую getServingUrl () для генерации URL-адреса загрузки, а затем пересылаю запрос своему собственному обработчику. Мне интересно, есть ли способ проверить, что загруженный BLOB-объект на самом деле является изображением, или мне нужно прочитать байты и использовать его, чтобы выяснить тип файла.

Ответы [ 2 ]

3 голосов
/ 25 февраля 2012

Большинство файлов изображений имеют магическое число или сигнатуру в байтах, которые легко найти и, возможно, быстрее прочитать, чем пытаться декодировать все изображение (т. Е. Пытаться использовать операцию изменения размера; так как это, скорее всего, быстро не удастся при NOT изображение, но на самом деле будет делать операцию, если это изображение).

Существует только конечное число типов изображений, которые вы действительно хотите поддерживать, я подозреваю; Вот несколько примеров магических чисел в Википедии:

http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_numbers_in_files

1 голос
/ 24 февраля 2012

В Python вы можете просто выполнить простое преобразование (изменить размеры) данных BLOB-объектов, используя API изображений, и, если BLOB-объект не является изображением, возникает NotImageError. Вероятно, в Java есть аналог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...