我正在开发API以使用Node.js上传文件。文件大小可以从1 KB到1 GB不等。我只允许某些特定类型的文件,例如png,pdf,doc等,如果文件类型错误,则将错误发送给用户。
我正在为此使用强大的模块。我可以使用以下代码检查文件的类型
var form = new formidable.IncomingForm();
form.on('fileBegin', function(name, file) {
//check file.type
});
但是这只是基于扩展名而不是真实文件类型 例如如果文件的扩展名是.pdf,它将给出application / pdf,但是如果我将扩展名更改为.html,它将给出text / html。因此,任何用户都可以通过更改文件扩展名来上传错误的文件。
我也不想在检查文件类型之前不上传整个文件。因为先上传一个1 GB的文件然后检查其文件类型是一个非常糟糕的主意