# How to get the file extension in Node.js from the MIME type

> Learn how to get a file extension in Node.js from its name with path.extname() or from a MIME type using mime.extension() from the mime-types package.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2021-06-20 | Topics: [Node.js](https://flaviocopes.com/tags/node/) | Canonical: https://flaviocopes.com/node-get-file-extension-mime-type/

I was sending a file through a form, and after using a form with `multipart/form-data`, server-side I had the File objects in `req.files`.

This gave me some information, like the path, name, size, type and so on:

```
{
  logo: File {
    size: 121920,
    path: '/var/folders/tn/h8lfq1sj7c33c0p30qgkd3mw0000gn/T/upload_b9e85b7cf989482a1760d82b77fd555a',
    name: 'Screen Shot 2021-06-07 at 21.40.29.png',
    type: 'image/png',
    hash: null,
    lastModifiedDate: 2021-06-07T22:20:50.150Z,
//...
  }
}
```

Notice the temp file path does not have an extension.

If you user the name server-side, no problem. But I wanted to change it and use my own naming conventions, so I needed just the file extension.

To get it, you can do 2 things: parse the file name, with

```js
const path = require('path')
path.extname(req.files.logo.name) //.png
```

which does not require any 3rd party library.

Or you can use the [`mime-types`](https://www.npmjs.com/package/mime-types) package and look at the MIME type:

```js
const mime = require('mime-types')
mime.extension('text/plain') //txt
mime.extension('image/png') //png
```
