/

如何從 MIME 類型在 Node.js 中獲取文件擴展名

如何從 MIME 類型在 Node.js 中獲取文件擴展名

我通過表單傳送了一個文件,在使用 multipart/form-data 的表單之後,我在服務器端的 req.files 中得到了文件對象。

這給我提供了一些信息,例如路徑、名稱、大小、類型等:

1
2
3
4
5
6
7
8
9
10
11
{
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,
//...
}
}

請注意,臨時文件路徑沒有擴展名。

如果在服務器端使用文件名沒有問題。但是我想要更改它並使用自己的命名慣例,所以我只需要文件的擴展名。

要獲取它,你可以做兩件事:解析文件名,

1
2
const path = require('path')
path.extname(req.files.logo.name) //.png

這不需要任何第三方庫。

或者你可以使用 mime-types 套件並查看 MIME 類型:

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

tags: [“Node.js”, “file extension”, “MIME type”, “parsing”, “mime-types“]