Ответ 1
Проверьте первые 4 байта массива.
Если это 0x25 0x50 0x44 0x46
, то это скорее всего файл PDF.
Есть ли способ проверить, является ли байт [] PDF без открытия?
У меня есть код для отображения списка байтов [] в виде миниатюр PDF. Я раньше знал, что все байты [] были pdf, потому что мы отфильтровали сервлет, чтобы только вернуть их. Теперь это требование изменилось, и мне нужно вернуть все типы файлов. Есть ли способ проверить, что такое байт [], или, более конкретно, определить, если это не так, PDF?
Проверьте первые 4 байта массива.
Если это 0x25 0x50 0x44 0x46
, то это скорее всего файл PDF.
Первые четыре байта должны быть: 0x25 0x50 0x44 0x46
(в шестнадцатеричном формате, в ASCII it %PDF
). "Магические числа" для других форматов вы можете найти здесь
Насколько я знаю, все PDF начинаются с %PDF
, поэтому вы можете проверить первые байты относительно этой строки.
В то время как отмеченный ответ и другие ответы верны, они не будут успешными в течение 100% времени. Проблема в спецификации PDF говорит о том, что% PDF-1.x должен быть только в первых 1024 байтах, а не в первом. 4. Некоторые программы будут добавлять информацию до% PDF и оставаться в силе.
Я бы рекомендовал увидеть ответ на следующий вопрос о переполнении стека: Как определить, является ли файл PDF или TIFF?