Подтвердить что ты не робот

Определите, является ли байт [] файлом PDF

Есть ли способ проверить, является ли байт [] PDF без открытия?

У меня есть код для отображения списка байтов [] в виде миниатюр PDF. Я раньше знал, что все байты [] были pdf, потому что мы отфильтровали сервлет, чтобы только вернуть их. Теперь это требование изменилось, и мне нужно вернуть все типы файлов. Есть ли способ проверить, что такое байт [], или, более конкретно, определить, если это не так, PDF?

4b9b3361

Ответ 1

Проверьте первые 4 байта массива.

Если это 0x25 0x50 0x44 0x46, то это скорее всего файл PDF.

Ответ 2

Первые четыре байта должны быть: 0x25 0x50 0x44 0x46 (в шестнадцатеричном формате, в ASCII it %PDF). "Магические числа" для других форматов вы можете найти здесь

Ответ 3

Насколько я знаю, все PDF начинаются с %PDF, поэтому вы можете проверить первые байты относительно этой строки.

Ответ 4

В то время как отмеченный ответ и другие ответы верны, они не будут успешными в течение 100% времени. Проблема в спецификации PDF говорит о том, что% PDF-1.x должен быть только в первых 1024 байтах, а не в первом. 4. Некоторые программы будут добавлять информацию до% PDF и оставаться в силе.

Я бы рекомендовал увидеть ответ на следующий вопрос о переполнении стека: Как определить, является ли файл PDF или TIFF?