detect-content-type
Version:
detect-content-type implements the algorithm described at http://mimesniff.spec.whatwg.org/ to determine the Content-Type of the given data. It considers at most the first 512 bytes of data. It always returns a valid MIME type: if it cannot determine a mo
43 lines (30 loc) • 1.29 kB
Markdown
Javascript module to determine the Content-Type of the given data, using the algorithm specified in the [MIME Sniffing Standard](https://mimesniff.spec.whatwg.org/).
This module is useful in cases where it is not possible to determine the Content-Type of the data using filename extension, either because file does not have an extension or the filename is not available.
```
npm install detect-content-type
```
or
```
yarn add detect-content-type
```
ES6 and above:
```javascript
import detectContentType from 'detect-content-type'
```
Using CommonJS:
```javascript
var detectContentType = require('detect-content-type')
```
`detectContentType` takes a Buffer, and determines its Content-Type. It considers at most
512 bytes of data. `detectContentType` always returns a valid MIME type. If it cannot determine a
more specific one, it returns `application/octet-stream`.
```javascript
let ct = detectContentType(Buffer.from("<html><body></body></html>")) // returns 'text/html; charset=utf-8'
```
The code in this module is ported nearly line-by-line from the [http.DetectContentType][DetectContentType] method in the Go standard library.
[]: https://golang.org/pkg/net/http/#DetectContentType