node file上传

2021-04-11  本文已影响0人  半夜成仙

安装 Multer

npm install multer --save
const express = require("express");
const route = express.Router();
const fs = require("fs");
const multer = require("multer");
const uploadMulter = multer({ storage: initMulter() });
route.post("/api/file/upload",uploadMulter.single("file"),  function (req, res) {

  var file = req.file;
  console.log('文件类型:%s', file.mimetype);
  console.log('原始文件名:%s', file.originalname);
  console.log('文件大小:%s', file.size);
  console.log('文件保存路径:%s', file.path);
res.end("ok")
});

function initMulter(){
  // 使用硬盘存储模式设置存放接收到的文件的路径以及文件名
var storage = multer.diskStorage({
  destination: function (req, file, cb) {
      // 接收到文件后输出的保存路径(若不存在则需要创建)
      cb(null, 'upload/');    
  },
  filename: function (req, file, cb) {
      // 将保存文件名设置为 时间戳 + 文件原始名,比如 151342376785-123.jpg
      cb(null, Date.now() + "-" + file.originalname);  
  }
});

// 创建文件夹
var createFolder = function(folder){
  try{
      // 测试 path 指定的文件或目录的用户权限,我们用来检测文件是否存在
      // 如果文件路径不存在将会抛出错误"no such file or directory"
      fs.accessSync(folder); 
  }catch(e){
      // 文件夹不存在,以同步的方式创建文件目录。
      fs.mkdirSync(folder);
  }  
};

var uploadFolder = "./upload";
createFolder(uploadFolder);

// 创建 multer 对象
return storage
}



module.exports = route;

上一篇下一篇

猜你喜欢

热点阅读