NoteZ_技术博客 NoteZ_技术博客
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)

NoteZ_技术博客

前端界的小学生
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)
  • Express

    • Express 通过 Http 下载文件
    • Express中使用间件Multer保存图片文件(示例)
      • 安装multer
      • 引入依赖
      • 代码示例
    • Express结合中间件Multer保存上传文件或文件夹
    • Express解决Vue打包部署刷新出现404问题
    • Node 中 Express 检查端口是否被占用(完美方案)
    • Nodejs 中使用 express 报 413 payload too large
    • 使用 express-generator 脚手架快速搭建 express 项目
  • Koa2

  • MongoDB

  • MySql

  • NodeJs

  • Oracle

  • Rust

  • Python

  • 后端开发
  • Express
NoteZ
2023-10-11
目录

Express中使用间件Multer保存图片文件(示例)

# 安装multer

npm i multer
1

# 引入依赖

const path = require("path");
const multer = require("multer");
1
2

# 代码示例

前端代码

const newFormData = new FormData();
newFormData.append("file", file);
axios.post("/notez/file/upload", newFormData, {
		headers: {},
}).then((res) => {
	if (res.data.code == 200) {
		 console.log(res.data);
	}
});
1
2
3
4
5
6
7
8
9

后端代码

let storage = multer.diskStorage({
  //设置 上传图片服务器位置
  destination: path.resolve(__dirname, "./public/img"),
  //设置 上传文件保存的文件名
  filename: function (req, file, cb) {
    // 获取后缀扩展
    let extName = path.extname(file.originalname); //.jpg
    // 获取名称
    let fileName = Date.now();

    // console.log(fileName + extName); //12423543465.jpg
    cb(null, fileName + extName);
  },
});
let fileFilter = function (req, file, cb) {
  let acceptableMime = ["image/jpeg", "image/png", "image/jpg", "image/gif"];
  // 限制类型
  // null是固定写法
  if (acceptableMime.indexOf(file.mimetype) !== -1) {
    cb(null, true); // 通过上传
  } else {
    cb(null, false); // 禁止上传
  }
};
let limits = {
  fileSize: "2MB", //设置限制(可选)
};

const imageUploader = multer({ fileFilter, storage, limits }).single("file"); //文件上传预定 name 或者 字段
router.post("/file/upload", imageUploader, (req, res, next) => {
  let username = req.headers["username"];
  let password = req.headers["password"];
  // console.log(req.file);
  if (config.login.username == username && config.login.password == password) {
    try {
      let name = path.basename(req.file.path);
      res.json({
        message: "操作成功!",
        code: 200,
        url: "/img/" + name,
        name,
      });
    } catch (error) {
      console.log(error);
      res.json({ message: "操作失败!", code: 500 });
    }
  } else {
    res.json({ message: "请登录后再试!", code: 400 });
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#Express#Multer#NodeJs
上次更新: 2024/01/30, 00:35:17
Express 通过 Http 下载文件
Express结合中间件Multer保存上传文件或文件夹

← Express 通过 Http 下载文件 Express结合中间件Multer保存上传文件或文件夹→

最近更新
01
Gitea数据备份与还原
03-10
02
Linux 中使用 rsync 同步文件目录教程
03-10
03
Linux 使用 rsync 互相传输同步文件的简单步骤
03-08
更多文章>
Theme by Vdoing | Copyright © 2019-2025 NoteZ,All rights reserved | 冀ICP备2021027292号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式