zoukankan      html  css  js  c++  java
  • 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‘ });
    });

    电脑刺绣绣花厂 http://www.szhdn.com 广州品牌设计公司https://www.houdianzi.com

     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();
  • 相关阅读:
    Phpstorm Xdebug Web程序调试
    Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法
    Jquery源码中的Javascript基础知识(三)
    Jquery源码中的Javascript基础知识(二)
    Jquery源码中的Javascript基础知识(一)
    smarty分页模板(用模板语法写分页)
    机器学习 一
    大型技术网站的技术( 高并发、大数据、高可用、分布式....)(一)
    来吧,English
    Nginx之一 正向代理和反向代理
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13859242.html
Copyright © 2011-2022 走看看