zoukankan      html  css  js  c++  java
  • express中文件的上传 multer

    multer

    //安装multer
    npm install --save multer
    1.改变form表单的enctype
    enctype="multipart/form-data"
    设置file的名字 例:pic
    2.引入multer

    const multer = require("multer");
    var storage = multer.diskStorage({
      destination: function (req, file, cb) {
        cb(null, "static/uploads"); //指定上传保存的路径
      },
      // 修改上传后的文件名
      filename: function (req, file, cb) {
        // cb(null, file.fieldname + '-' + Date.now())
        // 1.获取后缀名
        let extname = path.extname(file.originalname);
        // 2.根据时间戳 生成文件名
        cb(null, Date.now() + extname);
      },
    });
    
    var upload = multer({ storage: storage }
    
    );
    
    
    3.接收
    router.post("/toAdd",**upload.single("pic")**, (req, res) => {
      res.send({
        file:req.file
      });
    }
    );
    

    例子:

    //1 新建tools.js文件,添加文件上传模块封装

    const path = require("path");
    const multer = require("multer");
    let tools = {
      /**
       * 配置上传文件插件-multer
       */
      setMulter() {
        let storage = multer.diskStorage({
          destination: function (req, file, cb) {
            cb(null, "static/uploads"); //指定上传保存的路径
          },
          // 修改上传后的文件名
          filename: function (req, file, cb) {
            // cb(null, file.fieldname + '-' + Date.now())
            // 1.获取后缀名
            let extname = path.extname(file.originalname);
            // 2.根据时间戳 生成文件名
            cb(null, Date.now() + extname);
          },
        });
    
        let upload = multer({ storage: storage });
        return upload;
      },
    };
    module.exports = tools;
    

    2.在需要用的文件中引入
    const tools=require("../../modal/tools");

    3.在要接收上传的post请求的第二个参数调用 tools.setMulter().single("pic")

    router.post("/toAdd",tools.setMulter().single("pic"), (req, res) => {
      //获取表单传过来的数据
      res.send({
        file: req.file,
      });
    
    });
    
    • 一般保存图片时,以一天作为一个文件夹分类保存
    • silly-datetime 时间格式化插件使用
    • mkdirp 递归创建目录

    多文件上传

    var cpUpload = tools.setMulter().fields([
    
      { name: "pic1", maxCount: 1 },
      { name: "pic2", maxCount: 1 },
    ])
    接收:req.files
    ;
    
  • 相关阅读:
    数据库的接口
    BionicThe README from the bionic/libc
    发现问题——创新的原动力
    使用ADO或ADO控件访问数据库
    游标、事务并发和锁三者之间的那点事
    处女座——菜鸟程序员的工程总结
    数据库的基础知识以及创建数据库
    《Team Geek》前言(中文,自己翻译的)
    万里长征,始于足下——菜鸟程序员的学习总结(一)
    与RMAN相关的动态性能视图
  • 原文地址:https://www.cnblogs.com/bitlei/p/14399579.html
Copyright © 2011-2022 走看看