您的位置:首页 > Web前端 > Node.js

node文件上传插件formidable的使用

2016-12-17 23:25 791 查看
自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地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息