How to get the file extension in Node.js from the 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

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 package and look at the MIME type:

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


This content originally appeared on flaviocopes.com and was authored by flaviocopes.com

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

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 package and look at the MIME type:

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


This content originally appeared on flaviocopes.com and was authored by flaviocopes.com


Print Share Comment Cite Upload Translate Updates
APA

flaviocopes.com | Sciencx (2021-06-20T05:00:00+00:00) How to get the file extension in Node.js from the MIME type. Retrieved from https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/

MLA
" » How to get the file extension in Node.js from the MIME type." flaviocopes.com | Sciencx - Sunday June 20, 2021, https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/
HARVARD
flaviocopes.com | Sciencx Sunday June 20, 2021 » How to get the file extension in Node.js from the MIME type., viewed ,<https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/>
VANCOUVER
flaviocopes.com | Sciencx - » How to get the file extension in Node.js from the MIME type. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/
CHICAGO
" » How to get the file extension in Node.js from the MIME type." flaviocopes.com | Sciencx - Accessed . https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/
IEEE
" » How to get the file extension in Node.js from the MIME type." flaviocopes.com | Sciencx [Online]. Available: https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/. [Accessed: ]
rf:citation
» How to get the file extension in Node.js from the MIME type | flaviocopes.com | Sciencx | https://www.scien.cx/2021/06/20/how-to-get-the-file-extension-in-node-js-from-the-mime-type/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.