解决nodejs+express+multer保存中文文件名件乱码 您所在的位置:网站首页 slash中文名 解决nodejs+express+multer保存中文文件名件乱码

解决nodejs+express+multer保存中文文件名件乱码

2023-10-06 17:41| 来源: 网络整理| 查看: 265

省流

在使用multer()函数时除了storage{}对象还需要多传一个fileFilter()函数。

// 配置 Multer 中间件,指定文件上传的目标文件夹 const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, "uploads/"); // 这里指定上传文件保存的目录,确保该目录存在 }, filename: (req, file, cb) => { cb(null, file.originalname); } }); // 声明fileFilter函数 const fileFilter = (req, file, callback) => { // 解决中文名乱码的问题 latin1 是一种编码格式 file.originalname = Buffer.from(file.originalname, "latin1").toString( "utf8" ); callback(null, true); }; const upload = multer({storage: storage, fileFilter: fileFilter}); 代码 const express = require("express"); const router = express.Router(); const multer = require("multer"); // 配置 Multer 中间件,指定文件上传的目标文件夹 const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, "uploads/"); // 这里指定上传文件保存的目录,确保该目录存在 }, filename: (req, file, cb) => { cb(null, file.originalname); } }); const fileFilter = (req, file, callback) => { // 解决中文名乱码的问题 latin1 是一种编码格式 file.originalname = Buffer.from(file.originalname, "latin1").toString( "utf8" ); callback(null, true); }; const upload = multer({storage: storage, fileFilter: fileFilter}); router.post("/upload/files", upload.single("file"), (req, res) => { res.json({message: "文件上传成功!"}); }); module.exports = router;


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有