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
    ;
    
  • 相关阅读:
    python之scrapy篇(三)
    python之scrapy篇(二)
    python之scrapy篇(一)
    matlib调用python时转py格式为matlib格式
    ubuntu18.40 rtx2080ti安装显卡驱动/cuda/cudnn/tensorflow-gpu
    pytorch导入错误so: undefined symbol: _Z11libshm_initPKc
    yolo_v3训练自己的模型(人脸及deep-sort)(或自己数据集)
    python-图像处理(映射变换)
    python编译pyc工程--导包问题解决
    python(leetcode)-14最长公共前缀
  • 原文地址:https://www.cnblogs.com/bitlei/p/14399579.html
Copyright © 2011-2022 走看看