What does this file type detector do?
Select a file to identify its format from the bytes at its start, rather than relying only on the filename extension. The tool reads up to 4,160 bytes in your browser, checks documented binary signatures, and can use textual heuristics when no binary signature matches.
What gets reported
The result shows the selected filename and file size, then reports the detected format, standard extension, MIME type, category, and confidence. Categories include document, archive, image, audio, video, executable, binary, and Text. It also shows the claimed extension and whether it matches the detected format.
ZIP-based containers
DOCX, XLSX, PPTX, EPUB, JAR, APK, and plain ZIP files share an outer ZIP signature. For these files, the tool inspects the first internal entry and, when available, a mimetype marker. The Match basis panel explains the evidence used or says when the header is not enough to refine the result.
Textual detection when no binary signature matches
If no binary signature matches, the tool can identify an XML, HTML, JSON, CSV, or plain-text file from its decoded header. These are textual heuristic results with medium or low confidence, not binary magic-number matches. It reports unknown only when neither a binary signature nor plausible textual content matches.
Header preview (hex & ASCII, offset in hex)
This panel displays the first 64 bytes with hexadecimal offsets, hex values, and an ASCII view. It helps you inspect the bytes used during detection, but a textual or heuristic result is not necessarily supported by a binary signature you can verify there. An empty file displays “Empty file — no header bytes to show.”
What this tool is not
This tool identifies file formats only. It does not scan for malware or viruses, parse EXIF, XMP, or document metadata, repair files, convert them, extract archives, or modify their contents. A recognized or unknown result does not prove that a file is safe, unsafe, corrupt, or valid.
How to use it
- Drop a file on the drop zone, or click browse file.
- Review the detected format, standard extension, MIME type, category, and confidence.
- Compare the detected format with the claimed extension in the match or mismatch message.
- Inspect Match basis and Header preview (hex & ASCII, offset in hex).
If the filename has no extension, the tool reports that there is nothing to compare the detected signature against. An empty file has no header preview. If the file cannot be read, the tool displays “Could not read this file: ...”.
Privacy and limits
Processing occurs in the browser, and nothing is sent to a server. The implementation reads up to 4,160 bytes with file.slice(0, HEADER_READ_BYTES); the remainder is not processed by this detection workflow. Its signature database is not exhaustive, so rare, proprietary, encrypted, corrupted, or otherwise unrecognized content may produce an unknown result.
Frequently asked questions
How is this different from just checking the filename extension?
Filename extensions are just text and can be wrong, missing, or deliberately renamed. This tool reads the actual bytes at the start of the file and matches them against documented format signatures or, when appropriate, textual patterns.
Does this tool scan for malware or viruses?
No. It identifies a file format from header bytes or textual patterns. A result says nothing about whether the file's content is safe, so it should never be treated as a security or malware check.
Does it read EXIF or document metadata?
No. This tool does not parse EXIF, XMP, document properties, or other embedded metadata. It only identifies the file format from the data it reads.
What happens if no signature matches?
The tool first checks for XML, HTML, JSON, CSV, or plain text through textual heuristics. It reports the format as unknown or unrecognized only when neither a binary signature nor plausible textual content matches. This can happen with proprietary, encrypted, corrupted, or uncommon formats outside the signature database.
Is my file uploaded anywhere?
No. The browser reads up to 4,160 bytes from the start of the selected file using the File API. Nothing is sent to a server.