之前写过一个上传的案例有点乱现在重新总结下,只管能完成功能,至于安全性没考虑。
上传需要的模块:
var formidable = require('formidable'); //上传模块 var fs=require('fs'); //文件处理模块 var path=require('path');
路由:
/* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: '登录' }); });
router.post('/', function(req, res, next) { //上传文件以post上传
var form = new formidable.IncomingForm(); //创建上传表单
form.encoding = 'utf-8'; //设置编辑
form.uploadDir = './public/images/'; //设置上传目录
form.keepExtensions = true; //保留后缀
form.maxFieldsSize = 2 * 1024 * 1024; //文件大小
form.parse(req, function(err, fields, files) {
fs.renameSync(files.fulAvatar.path, 'public/images/1.jpg'); //重命名
});
res.render('index', {
title: '登录'
});
});
HTML:
<form method="post" action="/" enctype="multipart/form-data"> 上传文件必加 <input id="fulAvatar" name="fulAvatar" type="file" class="form-control" /> </form>
也可以参考下:https://sdeno.com/?p=4480