zoukankan      html  css  js  c++  java
  • Express踩坑系列之上传文件

    封装文件上传工具multerUtil.js

    创建util文件夹并在其下创建multerUtil.js

    var  multer=require('multer');
    var storage = multer.diskStorage({
        //设置上传后文件路径,uploads文件夹会自动创建。
           destination: function (req, file, cb) {
               cb(null, './public/uploads')
          }, 
        /**
         * 给上传文件重命名,获取添加后缀名
         * 参数名 + 文件名 + 时间戳
         * */
         filename: function (req, file, cb) {
             var fileFormat = (file.originalname).split(".");
            
            //  返回文件名
             cb(null, file.fieldname + '_' + fileFormat[0] + '_' + Date.now() + "." + fileFormat[fileFormat.length - 1]);
         }
    });  
        //添加配置文件到muler对象。
        var upload = multer({
             storage: storage
       });
       
     //如需其他设置,请参考multer的limits,使用方法如下。
      //var upload = multer({
     //    storage: storage,
     //    limits:{}
     // });
     
    //导出对象
    module.exports = upload;

    POST接口

    var express = require('express');
    var router = express.Router();
    // 引入文件上传工具
    var multer  = require('../util/multerUtil');
    
    /* POST提交文件. */
    // muilter.single(‘file’), //适用于单文件上传
    // muilter.array(‘file’,num), //适用于多文件上传,num为最多上传个数,上传文件的数量可以小于num,
    // muilter.fields(fields), //适用于混合上传,比如A类文件1个,B类文件2个
    // 详细信息:http://cnodejs.org/topic/564f32631986c7df7e92b0db
    router.post('/',multer.single('d'), function(req, res, next) {
    
      /**
       * 获取参数
       */ 
      var query = req.body;
      /**
       * 获取文件
       */
      var file = req.file;
    
      console.log('post数据',query,file)
    
      res.send('hello , world');
    });
    
    module.exports = router;
  • 相关阅读:
    数组模拟队列
    数组模拟栈
    数组实现双链表
    别再傻傻地说电脑内存不够用了,望周知!
    电脑内存又不够了?六个方法拯救你的C盘!
    jsp基础语法与指令
    最新的web.xml配置代码
    浅谈Session技术
    浅谈cookie技术
    Javaweb编程之Response下载文件
  • 原文地址:https://www.cnblogs.com/zhou195/p/8708837.html
Copyright © 2011-2022 走看看