multer中间件上传文件
来源:互联网 发布:阿里云解析教程 编辑:程序博客网 时间:2024/04/20 23:53
multer是express官方推荐的文件上传中间件,调用方法如下
1、在NodeJs项目下的package.json中添加multer依赖,并运行npm install运行安装
"multer" : "0.1.6"
2、引入该模块
var multer = require('multer');
3、配置相关参数
var multer_head = multer({dest : '../public/images/', rename : function(fieldname, filename){return filename;}})
4、使用
router.post('/setting', multer_head, function(req, res){...})
代码如下
setting.ejs
<%- include header %><form method="post" enctype="multipart/form-data">上传头像:<input type="file" name="head" /><br><input type="submit" value="保存" /></form><%- include footer %>router文件
var multer = require('multer');var multer_head = multer({dest : '../public/images/head/',//保存路径rename : function(fieldname, filename){//重命名var date = new Date();return fieldname + '_' + filename + '_' + date.getTime();}});//上传头像router.post('/setting', multer_head, function(req, res){req.flash('success', '头像上传成功');res.redirect('/');})注意:
1、提交form表单文件时,注意enctype="multipart/form-data"参数
2、如果上传的图像没有找到,可能是由于路径问题
3、这种写法是基于0.1.6版本的multer,官方已经更新到1.1.0版本,很多教材还是使用旧版本的案例作为讲解,导致很杂乱,下面说一下新版本的写法
基于1.1.0版本的multer用法
1、更新一下package.json中的multer版本号,然后npm install重新安装一下
2、models文件夹中新建multerUtil.js文件,写入如下代码
var multer = require('multer');var storage = multer.diskStorage({//保存路径destination : function(req, file, cb){cb(null, '../public/images/head/');},//重命名filename : function(req, file, cb){var fileFormat = (file.originalname).split('.'),date = new Date();cb(null, file.fieldname + '_' + date.getTime() + '.' + fileFormat[fileFormat.length - 1]);}})var multer_head = multer({storage : storage})module.exports = multer_head;3、router文件
var multer_head = require('../models/multerUtil.js');//参数名要和表单字段名一致var upload = multer_head.single('head');//上传头像router.post('/setting', upload, function(req, res){req.flash('success', '头像上传成功');res.redirect('/');})注意:上传文件的保存路径并不会自动创建,需要手动创建好,如果没有该文件夹,会报错
文件上传有以下方法:
multer.single('file') //适用于单文件上传
multer.array('file', num) //适用于多文件上传,num为最多上传个数,上传文件的数量可以小于num
multer.fields(fields) //适用于混合上传,请参考官方API
参考链接:
http://cnodejs.org/topic/564f32631986c7df7e92b0db
https://github.com/expressjs/multer
- multer中间件上传文件
- exoress文件上传中间件Multer
- express 4.X 使用multer中间件 上传文件
- nodejs multer上传文件
- Multer 文件上传
- nodeJS文件上传的知识点(使用multer中间件来上传)
- 利用中间件Multer实现上传功能
- nodejs使用multer中间件上传混合表单提交(文件和非文件普通文本域)
- Express文件上传之Multer
- nodejs + multer 实现文件上传与下载
- 0015、node 之multer上传文件处理
- multer模块的使用 +文件上传+ 评论
- NodeJS express+multer实现文件上传
- Express使用Multer实现文件上传
- nodejs中的中间件--Multer
- node+express文件上传 multer模块上传问题
- node.js学习笔记(8)--multer模块文件上传
- Ajax 配合node js multer 实现文件上传
- HBase 常用Shell命令
- Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析
- 转行程序员1 机器学习 线性回归 Linear Regression 纯属敦促自己学习
- 线程安全知识
- 什么牌子的视频会议系统好?
- multer中间件上传文件
- PHP/Java Bridge:PHP extend继承Java的interface,Java的interface直接在PHP实现
- 基于angularjs的瀑布流插件angular-waterfull.js
- Android Service与Activity之间通信使用Messenger方式
- Unity3d 和 3dmax轴向问题以及快速解决方案
- 虚函数调用
- Linux中的15个‘echo’ 命令实例
- Java transient关键字使用小记
- UVALive - 3902 Network 无根树转为有跟树+搜索+贪心