Est-il possible de vérifier si un octet [] est un fichier pdf sans ouverture?
J’ai du code pour afficher une liste d’octets [] sous forme de vignettes pdf. Auparavant, je savais que tous les octets [] étaient des fichiers PDF, car nous avons filtré la servlet pour ne les renvoyer que. Maintenant, l’exigence a changé et je dois ramener tous les types de fichiers. Existe-t-il un moyen de vérifier ce qu’est l’octet [], ou plus précisément de déterminer s’il ne l’est pas, un pdf?
Vérifiez les 4 premiers octets du tableau.
S’il s’agit de 0x25 0x50 0x44 0x46
il s’agit probablement d’un fichier PDF.
Les quatre premiers octets doivent être: 0x25 0x50 0x44 0x46
(au format hexadécimal, en %PDF
ASCII en ASCII). “Chiffres magiques” pour d’autres formats que vous pouvez trouver ici
Pour autant que je sache, tous les PDF commencent par %PDF
, vous pouvez donc vérifier les premiers octets par rapport à cette chaîne.
Bien que la réponse marquée et les autres réponses soient correctes, elles ne réussiront pas 100% du temps. Le problème est que la spécification PDF indique que% PDF-1.x ne doit figurer que dans les 1024 premiers octets et non dans les premiers 4. Certains programmes appendont des informations avant% PDF tout en restant valables.
Je recommanderais de consulter la réponse à la question suivante: « Comment détecter si un fichier est au format PDF ou TIFF?