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
    ;
    
  • 相关阅读:
    读写二进制c# 二进制读写
    重构风险程序员一定要遵守的规则
    文件区域使用fcntl锁定文件,并且测试
    数据清空js清空div里的数据问题
    模板缓存ThinkPHP中的模板引擎和视图层
    描述null11121 Base 2
    操作系统请求操作系统 算法
    工程项目eclipse项目名前出现红色感叹号,小红叉解决
    程序链接关于静态链接,动态链接,共享库,ABI的一些记录(os学习)
    NMAKE命令行编译
  • 原文地址:https://www.cnblogs.com/bitlei/p/14399579.html
Copyright © 2011-2022 走看看