Javascript 获取文件类型Node.js
大家好,我正在尝试获取Node.js中的文件类型。我必须在上传文件进行版本控制之前对其进行重命名,一旦文件被写入,然后对其进行一些处理 我知道我可以在客户端检查文件类型,但我仍然认为进行服务器端检查也是有益的 其他解决方案已将文件扩展名从文件名中弹出:Javascript 获取文件类型Node.js,javascript,node.js,Javascript,Node.js,大家好,我正在尝试获取Node.js中的文件类型。我必须在上传文件进行版本控制之前对其进行重命名,一旦文件被写入,然后对其进行一些处理 我知道我可以在客户端检查文件类型,但我仍然认为进行服务器端检查也是有益的 其他解决方案已将文件扩展名从文件名中弹出: return filename.split('.').pop(); 但由于我正在重命名此文件,用户可以简单地将恶意文件重命名为白名单扩展名,因此我正在寻找一种解决方案,以实际确定文件类型,特别是CSV 有人能告诉我解决这个问题的方向吗?要阅读文
return filename.split('.').pop();
但由于我正在重命名此文件,用户可以简单地将恶意文件重命名为白名单扩展名,因此我正在寻找一种解决方案,以实际确定文件类型,特别是CSV
有人能告诉我解决这个问题的方向吗?要阅读文件扩展名,您可以使用代码段:
const{extname}=require('path')
console.log(extname('foo.csv'))/.csv
console.log(extname('BAR.CSV'))/.CSV
但由于我正在重命名此文件,用户可以简单地将恶意文件重命名为白名单扩展名,因此我正在寻找一种解决方案,以实际确定文件类型,特别是CSV
通常,要实现此检查,您需要读取文件的魔法字节,并对有限的一组CSV执行相应操作,但CSV不在此列表中
CSV是一种定义格式的纯文本,因此您可以:
- 读几行并试着分析它们
- 定义CSV必须具有定义的标题,如
id、col1、col2等
- 使用一些工具尝试猜测文件的mime类型(如)
path.extname(fullnameoff文件)
CSV是一个完全基于文本的公式,因此很难检查某个内容是否为CSV。不过你可以检查一下它是否都是ASCII码。