• nodejs Multer中间件


    Multer是一个Node.js中间件,用于处理 multipart/form-data 类型的表单数据,主要用于文件上传
    注意:Multer中间件不会处理任何非 multipart/form-data 类型的表单数据
    Multer会自动添加一个body对象及file或files对象到 express框架的request 对象,fifile或fifiles对象包含表单上传的文件信息。
    通过表单上传文件时需要注意的是:
      (1)单的提交方式只能是POST
      (2)须设置表单的 enctype="multipart/form" 属性
     
    1 安装:npm install --save multer
    2.用法:
    var multer = require('multer');
    var upload = multer({...});
    3.multer配置:
    //1.进行Multer的自定义配置
    var storage = multer.diskStorage({
        //设置文件上传的位置,cb(callback简写)
        destination: function (req, file, cb) {
            //上传到path变量所指定的位置
            cb(null, path);
        },
           //设置上传文件名称的操作
        filename: function (req, file, cb) {
            //对于文件名进行相关的操作
            //获取原始文件的扩展名
            var extension = file.originalname.substr(file.originalname.lastIndexOf('.')+1).toLowerCase();
            //生成新的文件名
            var filename = uuid.v1() + '.' + extension;
            cb(null, filename);
        }
    });
    //2.使用自定义配置
    var upload = multer({ storage: storage });
    4.请求参数
    (1)single(fifieldname)
    接收以fifieldname命名的文件上传,该文件的信息存储在 req.file 内,如:
    app.post('/single',upload.single('avater'), (req, res) => {
      res.send({ message: 'OK' });
    });
    // single它是Multer对象的请求参数名称,avater指表单中input type="file"的name的属性值

     (2)array(fieldname,[maxCount])

    接收以fieldname命名的上传文件数组,可通过maxCount参数限制上传文件的最大数量,这些文件的信息存储在 req.files 内,如:
    app.post('/multiple',upload.array('album'), (req, res) => {
      res.send({ message: 'OK' });
    });

     5.req.fifile及req.fifiles

    req.fifile返回单文件上传时的文件相关信息对象
    req.fifiles返回多文件上传时的文件相关信息数组
    信息有:
      originalname,上传文件的原始名称
      fifilename,文件上传后的名称
      size,上传文件的字节数(以字节为单位)
      mimetype,上传文件的MIME类型
    6.UUID
    UUID(Universally Unique Identififier),通用唯 一识别码,其目的是为了让分布式系统中的所有元素都能存在唯一标识信息 -- 文件名称
    格式 8-4-4-4-12的形态
    安装:npm install --save uuid
    使用UUID:
    //生成基于时间戳的
    UUID uuid.v1();
    //生成生成随机数的
    UUID uuid.v4();
     
     
     
     
     
  • 相关阅读:
    撕裂寂寞
    创业中的“孙子兵法”
    生命的颜色占卜
    常常激励我们的36句话
    创建自己的3D虚拟身体!
    富人和穷人的八大差异
    有时,孤单是一种享受
    JavaScript类
    上网的十条基本礼节
    程序设计中的感悟
  • 原文地址:https://www.cnblogs.com/codexlx/p/12562655.html
Copyright © 2020-2023  润新知