如何使用强大的节点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和节点上传文件,限制扩展