如何从MIME类型中获得Node.js的文件扩展名

343 阅读1分钟

我通过一个表单发送一个文件,在使用表单与multipart/form-data ,服务器端我有文件对象在req.files

这给了我一些信息,比如路径、名称、大小、类型等等。

{
  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,
//...
  }
}

注意临时文件的路径没有扩展名。

如果你在服务器端使用这个名字,没有问题。但我想改变它,使用我自己的命名规则,所以我只需要文件的扩展名。

为了得到它,你可以做两件事:解析文件名,用

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

这不需要任何第三方库。

或者你可以使用 mime-types包并查看MIME类型。

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