express文件上传中间件Multer
2017-12-19 16:20
483 查看
express默认并不是处理http请求体中的数据,对于普通请求提(json,二进制,字符串),可以使用body-parser中间件。而对于文件上传(multipart/form-data请求),可以给予请求流处理,也可以使用formidable模块或Multer中间件。
1.multer中间件
multer是express官方推出的,用于node.js multipart/form-data请求数据处理的中间件.
他是基于busboy构建,可以搞笑处理文件上传,并不处理multipart/form-data之外的用户请求。
2.安装
npm install multer --save
3.使用
multer在解析完请求体后,会像request对象中天剑一个body对象和一个file或files对象(上传多个文件时使用files对象)。其中,
包含所提交表单的文本字段(如果有的话),而file(或者files)对象中包含通过表单上传的文件。
基本使用示例如下:
var express=require("express")
var app=express()
var multer=require("multer")
var upload=multer({ dest: 'uploads/' })
var fs=require("fs")
app.use(upload.fields([{ name: 'file1', maxCount: 1 }]))
app.get("/upload",function(req,res){
var html=fs.readFileSync("./upload.html")
res.end(html)
})
app.post("/upload",function(req,res){
if(req.files){
res.end("上传成功")
}else{
res.end("上传错误")
}
console.log("上传文件信息如下:")
console.log(req.files)
})
app.listen(80)其中文件upload.html代码如下:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>upload</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<p>选择需要上传的文件:<input type="file" name="file1" value="点击选择上传文件"></p>
<input type="submit" value="提交">
</form>
</body>
</html>需要注意的点有:1.form必须加上属性enctype值为multipart/form-data2.input(type=“file”)的属性name的值必须和upload.fields函数传入对象的属性name值一样如何需要上传两个文件可以这样写:app.use(upload.fields([{ name: 'file1', maxCount: 1 },{name:'file2',maxCount:1}]))与之对应的form表单这样写:<input type="file" name="file1" /><input type="file" name="file2" />3个或者4个或者更多文件如此类推,关于req.fiels里面的对象属性值所代表的意思大家可以去参考github上关于multer的介绍。
1.multer中间件
multer是express官方推出的,用于node.js multipart/form-data请求数据处理的中间件.
他是基于busboy构建,可以搞笑处理文件上传,并不处理multipart/form-data之外的用户请求。
2.安装
npm install multer --save
3.使用
multer在解析完请求体后,会像request对象中天剑一个body对象和一个file或files对象(上传多个文件时使用files对象)。其中,
包含所提交表单的文本字段(如果有的话),而file(或者files)对象中包含通过表单上传的文件。
基本使用示例如下:
var express=require("express")
var app=express()
var multer=require("multer")
var upload=multer({ dest: 'uploads/' })
var fs=require("fs")
app.use(upload.fields([{ name: 'file1', maxCount: 1 }]))
app.get("/upload",function(req,res){
var html=fs.readFileSync("./upload.html")
res.end(html)
})
app.post("/upload",function(req,res){
if(req.files){
res.end("上传成功")
}else{
res.end("上传错误")
}
console.log("上传文件信息如下:")
console.log(req.files)
})
app.listen(80)其中文件upload.html代码如下:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>upload</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<p>选择需要上传的文件:<input type="file" name="file1" value="点击选择上传文件"></p>
<input type="submit" value="提交">
</form>
</body>
</html>需要注意的点有:1.form必须加上属性enctype值为multipart/form-data2.input(type=“file”)的属性name的值必须和upload.fields函数传入对象的属性name值一样如何需要上传两个文件可以这样写:app.use(upload.fields([{ name: 'file1', maxCount: 1 },{name:'file2',maxCount:1}]))与之对应的form表单这样写:<input type="file" name="file1" /><input type="file" name="file2" />3个或者4个或者更多文件如此类推,关于req.fiels里面的对象属性值所代表的意思大家可以去参考github上关于multer的介绍。
相关文章推荐
- express文件上传中间件Multer最新使用说明
- express文件上传中间件Multer详解
- express文件上传中间件Multer详解
- express 4.X 使用multer中间件 上传文件
- Nodejs进阶:基于express+multer的文件上传
- multer中间件上传文件
- Nodejs进阶:基于express+multer的文件上传
- Nodejs进阶 基于express+multer的文件上传
- nodejs使用multer中间件上传混合表单提交(文件和非文件普通文本域)
- node+express用multer上传图片或者文件到服务器及用日期命名图片存储的文件夹
- NodeJS express+multer实现文件上传
- nodeJS文件上传的知识点(使用multer中间件来上传)
- 基于express+multer的文件上传
- nodejs之express中间件multer实现附件上传
- node入门(五) - express(中间件,路由,文件上传,虚拟主机)
- node+express文件上传 multer模块上传问题
- Express文件上传之Multer
- Nodejs进阶:基于express+multer的文件上传实例
- nodejs 上传文件 express-fileupload
- multiparty node.js的中间件 --- 上传文件