Detect the file type of a Buffer/Uint8Array
The file type is detected by checking the magic number of the buffer.
$ npm install --save file-type
$ bower install --save file-type
$ component install sindresorhus/file-type
var readChunk = require('read-chunk'); // npm install read-chunk
var fileType = require('file-type');
var buffer = readChunk.sync('unicorn.png', 0, 262);
fileType(buffer);
//=> png
var xhr = new XMLHttpRequest();
xhr.open('GET', 'unicorn.png');
xhr.responseType = 'arraybuffer';
xhr.onload = function () {
fileType(new Uint8Array(this.response));
//=> png
};
xhr.send();
Returns one of the supported file types or false
.
Type: buffer
(Node.js), uint8array
It only needs the first 262 bytes.
$ npm install --global file-type
$ file-type --help
Usage
$ cat <filename> | file-type
$ file-type <filename>
Example
$ cat unicorn.png | file-type
png
SVG isn't included as it requires the whole file to be read, but you can get it here.
PR welcome for additional commonly used file types
MIT © Sindre Sorhus