Хотите проверить, будет ли загрузка успешной? Или вы хотите проверить, что загруженное на самом деле изображение?
В первом случае единственный способ проверить это - попытаться получить к нему доступ и посмотреть, какой код ответа HTTP вы получаете. Вы можете отправить HTTP HEAD
запрос на получение кода ответа, фактически не загружая изображение, но если вы все равно собираетесь продолжить загрузку изображения (если оно успешно), то отправка отдельного HEAD
запроса выглядит как пустая трата времени (и пропускная способность).
В качестве альтернативы, если вы действительно хотите проверить, является ли загружаемый файл действительным файлом образа, вам необходимо прочитать весь файл, чтобы проверить его на наличие повреждений. Но если вы просто хотите проверить правильность расширения файла, этого должно быть достаточно, чтобы проверить первые несколько байтов файла. Все изображения GIF начинаются с текста ASCII GIF87
или GIF89
в зависимости от того, какая спецификация GIF используется. Изображения PNG начинаются с текста ASCII PNG
, а изображения JPEG имеют магическое число, которое, по-видимому, составляет 0xd8ffe0ff
на основе JPEG, которые я просматривал. (Вы должны провести некоторое исследование и проверить это, попробуйте Википедию для ссылок) Имейте в виду, однако, что, чтобы получить даже первые несколько байтов изображения, вам нужно будет отправить HTTP-запрос, который может вернуть 404 (и в этом Если у вас нет изображения для проверки).