首页 > 代码库 > node.js form 上传

node.js form 上传

安装formidable
pm install formidable@latest

客户端表单提交
<form class="form-signin" role="form" method="post" enctype=‘multipart/form-data‘>        <h2 class="form-signin-heading">上传文件</h2>        <input id="fulAvatar" name="fulAvatar" type="file" class="form-control" />             <br/>        <button id="btnSub" class="btn btn-lg btn-primary" type="submit">上 传</button>      </form>
服务端指定路由规则
技术分享
router.post(‘/upload‘, function(req, res) {  var form = new formidable.IncomingForm();   //创建上传表单      form.encoding = ‘utf-8‘;        //设置编辑      form.uploadDir = ‘public‘ + AVATAR_UPLOAD_FOLDER;     //设置上传目录      form.keepExtensions = true;     //保留后缀      form.maxFieldsSize = 2 * 1024 * 1024;   //文件大小    form.parse(req, function(err, fields, files) {         if (err) {          res.locals.error = err;          res.render(‘index‘, { title: ‘TITLE‘ });          return;                }                 console.log(fields);        var extName = ‘‘;  //后缀名        switch (files.fulAvatar.type) {            case ‘image/pjpeg‘:                extName = ‘jpg‘;                break;            case ‘image/jpeg‘:                extName = ‘jpg‘;                break;                     case ‘image/png‘:                extName = ‘png‘;                break;            case ‘image/x-png‘:                extName = ‘png‘;                break;                 }        if(extName.length == 0){              res.locals.error = ‘只支持png和jpg格式图片‘;              res.render(‘index‘, { title: TITLE });              return;                           }        var avatarName = Math.random() + ‘.‘ + extName;        var newPath = form.uploadDir + avatarName;        console.log(newPath);        fs.renameSync(files.fulAvatar.path, newPath);     });    res.render(‘upload‘, { title: ‘Upload Demo‘ });      });
View Code

 

node.js form 上传