node文件上传插件formidable的使用

自express4.x后,express不再提供文件上传的相关操作,但其建议使用中间件,如busboy, multer, formidable, multiparty, connect-multiparty, or pez。官方说明如下

In Express 4, req.files is no longer available on the req object by default. To access uploaded files on the req.files object, use a multipart-handling middleware like busboy, multer, formidable, multiparty, connect-multiparty, or pez.

今天介绍的是formidable的使用:
安装formidable

npm install formidable

引入formidable,并初始化解析器

var form = require("formidable")
 // parse a file upload
var form = new formidable.IncomingForm();

常规设置

//设置文件上传后保存的路径
form.uploadDir = "/my/dir";
//保留原始文件的扩展名
form.keepExtensions = true;

解析表单提交

//express的路由
router.post("/upload",function(req,res,next){
//fields为表单提交时的字段是个json
//files为表单提交时所上传的文件信息的集合通过files.file可以获取所上传文件的较多信息。现在是单文件上传 
form.parse(req,function(err,fields,files){
//为上传的文件重命名:其中files.file.path可以获取文件的上传路径
fs.renameSync(files.file.path,form.uploadDir  +  "/" + files.file.name)
})
//文件上传完成后执行
form.on("end",function(){
})

})

其他属性及方法请参考:
fromidable github地址

猜你喜欢

转载自blog.csdn.net/wangzhikui1/article/details/53716714