zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Kubernetes 命令行工具之kubctl
    新一代数据库之Etcd 简介
    算法题 打家劫舍(动态规划)
    算法题 位1的个数
    Class强制类型转换
    算法题 阶乘后的零
    算法题 Excel表列序号
    多数元素
    有序数组两数之和
    一杯果汁和一杯水的故事
  • 原文地址:https://www.cnblogs.com/wangxm123/p/4192189.html
Copyright © 2011-2022 走看看