multer
<form id= "file-upload" name= "file-upload"****
enctype= 'multipart/form-data' >
<div style= " margin:20px 0; " ></div>
<input id= "fb" name= "emp_inf" multiple= 'mutiple' class= "easyui-filebox" style= " width:400px **"****
**data-options= "prompt:'Please choose a file...'" >
<div style= " margin:20px 0; " ></div>
</form>
Form的name用于ajax获取数据,emp_inf用于后台获取文件。接下来ajax使用formData对文件数据进行格式化。
function fileupload() {
var formData = new FormData(('#file-upload')[0]);\
.ajax({
url: '{{projcfg.appurl}}/admin/api/project/employee/employee/upload',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {
alert('上传成功' + data);
refresh();
},
error: function (data) {
alert('上传失败' + data);
refresh();
}
});
}
接下来就是很重要是的,我们需要在app.js中首先对文件上传路径进行设置,以及引入multer中间件。Multer中间件在使用的时候需要在0.1.8-0.1.6版本,在安装的时候使用
npm install multer@0.1.6 --save
否则在项目启动的时候multer();会被识别为不是一个方法。所以一定要注意版本号。
var multer=require('multer');
app.use(multer({
dest: './public/file',
rename: function (fieldname, filename) {
return filename;
}
}));
router.route('/upload').post(function (req, res) {
var file=req.files.emp_inf;
console.log(file.encoding);
console.log(file.extension);
console.log(file.filename);
console.log(file.mimetype);
console.log(file.name);
console.log(file.originalname);
console.log(file.path);
console.log(file.size);
});