Utility to parse mime type from a file content.
Browser (react)
import { parse } from 'file-type-mime';
export default function fileUpload() {
async function onChange(e) {
const [file] = e.target.files;
const buffer = await file.arrayBuffer();
const result = parse(buffer);
console.log('MIME_TYPE', result);
}
return (
<form>
<input type="file" onChange={onChange}>
</form>
);
}
Node.js
import { parse } from "file-type-mime";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
const file = resolve("./path/to/file.pdf");
const buffer = readFileSync(file);
const result = parse(buffer);
console.log("MIME_TYPE", result);
function parse(buffer: ArrayBuffer, options: Options = {}): Result | undefined
Type: ArrayBuffer
A buffer representing file data
Type: { extra?: boolean; hint?: { ext?: string; mime?: string } }
- hint - used to short-circuit general flow by filtering signatures list
- extra - used to parse additional file type formats (like json, txt)
Type: { ext: string; mime: string } | undefined
(more to come...)
File extension | Content (mime) type |
---|---|
bmp | image/bmp |
gif | image/gif |
ico | image/x-icon |
jpg | image/jpeg |
heic | image/heic |
png | image/png |
tiff | image/tiff |
application/pdf | |
rtf | application/rtf |
epub | application/epub+zip |
gz | application/gzip |
jar | application/java-archive |
zip | application/zip |
bz2 | application/x-bzip2 |
rar | application/x-rar-compressed |
tar | application/x-tar |
docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation |
xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
opd | application/vnd.oasis.opendocument.presentation |
ods | application/vnd.oasis.opendocument.spreadsheet |
odt | application/vnd.oasis.opendocument.text |
db | application/vnd.sqlite3 |
7z | application/x-7z-compressed |
avi | video/x-msvideo |
mp3 | audio/mp3 |
mp4 | video/mp4 |
oga | audio/ogg |
ogg | audio/ogg |
ogm | video/ogg |
ogv | video/ogg |
ogx | application/ogg |
wav | audio/wav |
woff | font/woff |
woff2 | font/woff2 |
deb | application/x-deb |
flac | audio/x-flac |
psd | image/vnd.adobe.photoshop |
wasm | application/wasm |
webp | image/webp |
class | application/java-vm |
exe | application/x-msdownload |
parquet | application/vnd.apache.parquet |
json | application/json |
txt | text/plain |
vsix | application/vsix |