使用 multer 上传 NodeJs 文件
最编程
2024-07-18 18:20:25
...
var express = require('express')
var path = require('path')
var router = express.Router()
var multer = require('multer')
//uuid工具可以生成唯一标示 需要安装
var UUID = require('uuid')
//设置保存规则
var storage = multer.diskStorage({
//destination:字段设置上传路径,可以为函数
destination: path.resolve(__dirname, '../upload'),
//filename:设置文件保存的文件名
filename: function(req, file, cb) {
let extName = file.originalname.slice(file.originalname.lastIndexOf('.'))
let fileName = UUID.v1()
cb(null, fileName + extName)
}
})
//设置过滤规则(可选)
var imageFilter = function(req, file, cb){
var acceptableMime = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif']
//微信公众号只接收上述四种类型的图片
if(acceptableMime.indexOf(file.mimetype) !== -1){
cb(null, true)
}else{
cb(null, false)
}
}
//设置限制(可选)
var imageLimit = {
fieldSize: '2MB'
}
//创建 multer 实例
var imageUploader = multer({
storage: storage,
fileFilter: imageFilter,
limits: imageLimit
}).array('photos', 12) //定义表单字段、数量限制
router.post('/image', imageUploader, function(req, res, next) {
//req.files中保存文件信息,如下
// [ { fieldname: 'photos',
// originalname: 'p8U85lWN0XyYcel_avatar_uploaded1439700817.69.jpg',
// encoding: '7bit',
// mimetype: 'image/jpeg',
// destination: 'E:\\mine\\wechat\\upload',
// filename: 'b585c040-0a6f-11e9-bbb6-fdcabd365420.jpg',
// path:
// 'E:\\mine\\wechat\\upload\\b585c040-0a6f-11e9-bbb6-fdcabd365420.jpg',
// size: 16536 } ]
console.log(req.files);
})
推荐阅读
-
前端使用 vue 点击上传文件,然后将文件传输到后端,后端接收文件 II。代码部分
-
如何使用Antd示例演示上传文件至腾讯云COS
-
使用COS将文件上传至腾讯云
-
如何使用cURL将文件上传至MinIO存储服务
-
如何使用bootstrap-fileinput工具快速预览选中的图片文件,而不进行实际上传操作
-
轻松使用简明代码实现文件上传操作
-
使用SSM架构和Plupload实现实现大文件分块上传的简易实例指南
-
使用 Axios:以表单数据 (formData) 和文件上传方式发送请求详解
-
使用Spring Boot与腾讯COS配合,轻松搭建文件上传功能
-
使用 multer 上传 NodeJs 文件