如何用强大的js来限制文件types

我有一个强大的function运行,接受传入的文件。 它的作用像一个魅力,但我不能看到有关限制文件types的文档中的任何地方。 https://github.com/felixge/node-formidable似乎几乎所有的东西都被覆盖,除了这个。

有没有人遇到过这个?

var form = new formidable.IncomingForm(), files = [], fields = [], returnJson = {}; //setup the incoming form.uploadDir = GLOBAL.server_settings.user_content; form.encoding = 'utf-8'; form.maxFieldsSize = 2 * 1024 * 1024; form.maxFields = 1000; form.on('field', function(field, value) { console.log(field, value); fields.push([field, value]); }) /* this is where the renaming happens */ .on ('fileBegin', function(name, file){ var fileType = file.type.split('/').pop(); //rename the incoming file file.path = form.uploadDir + "/" + req.user.id + _ + toolbox.uniqid() + '.' + fileType; }) .on('file', function(field, file) { //on file received console.log(field, file); files.push([field, file]); }) .on('progress', function(bytesReceived, bytesExpected) { //self.emit('progess', bytesReceived, bytesExpected) var percent = (bytesReceived / bytesExpected * 100) | 0; process.stdout.write('Uploading: %' + percent + '\r'); }) .on('end', function() { console.log('-> upload done'); console.log( files ); console.log( fields ); returnJson.file_data = files; returnJson.fields_data = fields; res.json( returnJson ); }); form.parse(req); 

所以事实certificate,所有这一切后,如果你只是不设置文件path,当文件types不是你想要的,这是限制我的文件types相同。

例如:

 //event listeners for the form.parse() below form.on('field', function(field, value) { console.log(field, value); fields.push([field, value]); }) /* this is where the renaming happens */ .on ('fileBegin', function(name, file){ var fileType = file.type.split('/').pop(); if(fileType == 'jpg' || fileType == 'png' || fileType == 'jpeg' ){ //rename the incoming file file.path = form.uploadDir + "/" + images_hash + '_' + image_count + '.' + fileType; //increment image counter for next possible incoming image ++image_count; } else { console.log( 'incorrect file type: ' + fileType ); } })