嘿,各位,我正在尝试获取node.js中的文件类型。为了进行版本控制,我必须在上传文件之前重命名文件,一旦文件被写入,然后对其运行一些处理。
我知道我可以在客户端检查文件类型,但我仍然认为做一个服务器端检查是有益的。
其他解决方案将文件扩展名从文件名中弹出:
return filename.split('.').pop();
但是,由于我正在重命名这个文件,而且用户可以简单地将恶意文件重命名为白名单扩展名,所以我正在寻找一种能够确定文件类型的解决方案,特别是CSV。
有谁能给我指出解决这个问题的方向吗?
要读取文件扩展名,可以使用以下代码段:
const { extname } = require('path')
console.log(extname('foo.csv')) // .csv
console.log(extname('BAR.CSV')) // .CSV
但是,由于我正在重命名这个文件,而且用户可以简单地将恶意文件重命名为白名单扩展名,所以我正在寻找一种能够确定文件类型的解决方案,特别是CSV。
通常,要实现这种检查,您需要读取文件的神奇字节,并针对有限的一组文件类型执行相应的操作,但CSV不在此列表中。
CSV是具有定义格式的纯文本,因此您可以:
id,col1,col2等
mime-types
)