2017-08-06 38 views
1

我的代码:如何在节点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> 

所有的包都正确安装和使用此代码,文件(与任何扩展名)正在上传到所需的目录。

我想要的只是图像文件上传例如: - jpeg,png等
谢谢。

回答

1

使用此代码:

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'); 
    } 
} 

来源:uploading files using express.js and node, limiting extensions

+0

原来我的代码工作正常,只要重启解决的一天。谢谢钱德拉库马尔 – Zaheen

相关问题