Nodejs服务器文件上传
介绍
Nodejs服务端上传文件,现在比较常用的是multer和formidable模块。
multer模块只能处理content-type是multipart/form-data的request。
formidable则没有这种限制。
multer
multer模块的服务端代码
var multer = require('multer'); // 加载multer模块
var upload = multer({
dest:'/upload'});// 指定上传文件的存储路径
// 上传文件的api是uploadFile, 并且指定上传的文件是单个上传且,上传文件的fileName是uploadFile
router.use('uploadFile', upload.single('uploadFile'),(req,res,next)=>{
next()
})
multer的相关信息
filename : 在form表单中指定的name属性值 orginalname : 原始文件名 encoding :
文件编码方式 mimetype : 多媒体类型 size : 文件大小,单位b destination :
文件上传后存储在服务端的路径 filename : 文件在服务端的命名 path : 文件在服务端的完整路径
buffer : 文件二进制数据
muliter的一些api方法
single(fieldname) 接收单个文件,通过req.file访问该文件 array(fieldnaem,[maxcount])
接收多个文件,通过req.files数组方法文件.maxcount指定接收文件最大数. fields(fields)
接受指定fieldname的文件,fieldname由客户端决定,通过req.files数组方法 any
接收所有文件上传,通过req.files访问文件
multer模块的客户端代码
var input = document.createElement('input');
input.type = 'file'
input.name = 'uploadFile'