Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件

注意: Multer 不会处理任何非 multipart/form-data 类型的表单数据

使用方法:

安装 Multer

npm install multer --save

安装 uuid (生成唯一标识,作为文件名)

npm install uuid --save

保存图片

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);
})

NodeJs 使用 multer 实现文件上传的更多相关文章

  1. Nodejs进阶:基于express+multer的文件上传

    关于作者 程序猿小卡,前腾讯IMWEB团队成员,阿里云栖社区专家博主.欢迎加入 Express前端交流群(197339705). 正在填坑:<Nodejs学习笔记> / <Expre ...

  2. nodejs+multer+ajax文件上传

    前端 html代码 + ajax代码 form表单(无需指定action) <form enctype="multipart/form-data" method=" ...

  3. nodejs 实现简单的文件上传功能

    首先需要大家看一下目录结构,然后开始一点开始我们的小demo. 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能. 2.通过html的form标签实现文件上传 ...

  4. node.js中 express + multer 处理文件上传

    multer中间件,可以很方便的结合express处理用户表单上传的文件. 一.安装multer npm install multer 二.处理单个文件上传 const express = requi ...

  5. NodeJS使用formidable实现文件上传

    最近自学了一下NodeJS,然后做了一个小demo,实现歌曲的添加.修改.播放和删除的功能,其中自然要实现音乐和图片的上传功能.于是上网查找资料,找到了一个formidable插件,该插件可以很好的实 ...

  6. javascript结合nodejs实现多文件上传

    前端文件上传功能比较依赖后端,所以第一步用nodejs实现一个供文件上传的功能接口. 因为本人对nodejs也是一知半解,所以刚开始的想法是像原始的ajax交互那样,获取上传文件的内容,然后再通过no ...

  7. Node.js文件上传

    Node.js express使用Multer实现文件上传html部分 <div> <h3>文件上传:</h3> 选择一个文件上传: <br/> < ...

  8. 关于ajax 异步文件上传 node 文件后台接口

    <body> <img src="" alt="" id="img"> <input type="f ...

  9. 【nodejs】--express的中间件multer实现图片文件上传--【XUEBIG】

    Multer是nodejs中处理multipart/form-data数据格式(主要用在上传功能中)的中间件.该中间件不处理multipart/form-data数据格式以外的任何形式的数据 Tips ...

随机推荐

  1. Python控制台颜色

    Python控制台颜色 格式:\033[显示方式;前景色;背景色m 说明: 前景色 背景色 颜色 30 40 黑色 31 41 红色 32 42 绿色 33 43 黃色 34 44 蓝色 35 45 ...

  2. 深度系统 deepin 15.9 关闭桌面

    深度系统 deepin 15.9 关闭桌面 由于特别的原因,关闭深度的桌面. sudo systemctl disable lightdm 如果需要在命令模式进入桌面可以使用以下命令. sudo se ...

  3. JIT(Just in time,即时编译,边运行边编译)、AOT(Ahead Of Time,运行前编译),是两种程序的编译方式

    JIT(Just in time,即时编译,边运行边编译).AOT(Ahead Of Time,运行前编译),是两种程序的编译方式

  4. windows 端口转发

    1.添加端口转发 netsh interface portproxy add v4tov4 listenport=5000 listenaddress=10.30.3.148 connectport= ...

  5. cocos CCLayer glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);ios11闪退 spine动画

    搜索一下方法,找到后替换不同内容: void PolygonBatch::flush () { if (!_verticesCount) return; GL::bindTexture2D(_text ...

  6. Xorboot-UEFI新手入门教程

    Xorboot-UEFI新手入门教程        Xorboot-UEFI是一款UEFI下轻量级的图形化多系统引导程序,pauly于2014年国庆节期间发布了预览版.搜了下论坛,关于Xorboot- ...

  7. Hadoop 管理工具HUE配置-初始配置

    1 界面换成中文 默认是英文的,可以修改为中文 1.修改配置文件settings.pynano hue/desktop/core/src/desktop/settings.py LANGUAGE_CO ...

  8. Android屏幕亮度调节相关源码

    如下代码内容是关于Android屏幕亮度调节相关的代码. public static boolean isAutoBrightness(ContentResolver aContentResolver ...

  9. python 云打码 http接口

    import http.client, mimetypes, urllib, json, time, requests ######################################## ...

  10. awk 正则匹配指定字段次数统计

    1. 文本数据 head 12315_industry_business.csv name,business,label,label_name 沧州光松房屋拆迁有限公司,旧房拆迁.改造:物业服务(依法 ...