如何使用强大的节点js文件扩展名?

我的代码:

Js文件:

var formidable = require('formidable'); var fs = require('fs'); var ex = require('express'); var fse = require('fs-extra'); var app = ex(); app.set('view engine', 'ejs'); app.get('/form', function(req, res) { res.render(__dirname + '/views/front.ejs', {title: 'form-page'}); }).listen(8081); app.post('/form', function(req, res) { var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { var oldpath = files.fil.path; var newpath = __dirname + '/uploads/' + files.fil.name; var fileExt = files.fil.name.split('.').pop(); fse.move (oldpath, newpath, function (err) { if (err) { throw err; } }); }); }); 

Html / Ejs文件:

 <html> <title> <%= title %> </title> <body> <h2> Form </h2> <form action="/form" method="post" enctype="multipart/form-data"> Name: <input type="text" name="name" /><br> File: <input type="file" name="fil" /> <input type="submit" value="Submit"> </form> </body> </html> 

所有的软件包都已经正确安装,并且使用这个代码,文件(带有任何扩展名)将正确地上传到所需的目录。

我想要的只是图像file upload,例如: – JPEG,PNG等
谢谢。

使用此代码:

 form.onPart = function (part) { if(!part.filename || part.filename.match(/\.(jpg|jpeg|png)$/i)) { this.handlePart(part); } else { console.log(part.filename + ' is not allowed'); } } 

来源: 使用express.js和节点上传文件,限制扩展