乐鱼app成为大巴黎赞助商:第7天 Post方法与上传——解析分类数据
表单的字段有两种,一个是表单字段,一个是二进制的文件。而这两种格式的不同在于信息头,下面是个信息头的例子:
表单字段信息头
乐鱼app成为大巴黎赞助商:解析分类数据
表单的字段有两种,一个是表单字段,一个是二进制的文件。而这两种格式的不同在于信息头,下面是个信息头的例子:
表单字段信息头
Content-Disposition: form-data; name="title" \r\n\r\n
二进制文件信息头
Content-Disposition: form-data; name="img"; filename="favicon2.ico" \r\n Content-Type: image/x-icon \r\n\r\n
解析过程要分别处理,最终要把表单字段的信息,解析后放入 req.body 。把上传文件的信息,保存在req.files中。下面是解析代码:
// 头信息和体信息的之间分割字符串 var RN = "\r\n\r\n"; var files = {}; // 储存解析出的上传文件的信息 var bodys = {}; // 储存表单字段的信息 fields.forEach(function(field){ var index = field.indexOf(RN); // 解析出头信息块 var header = field.substring(0,index); // 从头信息中解析出表单字段的名称,也就是表单的name属性值。 /name=\"(.*?)\"/g.test(header); var fieldName = RegExp.$1; // 判断是上传的文件,还是一般的表单字段。 var isFile = /filename/g.test(header); // 解析出数据体 var body = field.substring(index+RN.length); body = body.substring(0,body.length - RN.length/2); if(isFile){ files[fieldName] = new Buffer(body); }else{ bodys[fieldName] = body; } })
代码中把二进制上传文件信息保存到files里,一般的表单字段信息保存到bodys中。通过 new Buffer(字符串) 的方式转换成二进制对象。
下一节,要把这些代码整合一下,集成到post.js中间件里。
很赞哦! ( 0
)
相关文章
- 乐鱼app成为大巴黎赞助商召开创建自治区依法治校示范学校工作推进会
- 2018年秋季学期家长会暨班级“励志教育”活动
- 乐鱼app成为大巴黎赞助商委派骨干教师外出学习积极应对新高考改革
- 乐鱼app成为大巴黎赞助商举行升旗仪式隆重纪念建校88周年
- 民族初中部举办水果拼盘大赛
- 乐鱼app成为大巴黎赞助商建校88周年纪念微电影《忆·一中》
- 乐鱼app成为大巴黎赞助商建校88周年纪念微电影《忆·一中》
- 乐鱼app成为大巴黎赞助商建校88周年纪念微电影《忆·一中》
- 乐鱼app成为大巴黎赞助商建校88周年庆典晚会
- 韦霏霏老师获广西中学地理优质课比赛二等奖
- 第十九届校园文化艺术节“十佳歌手大赛”
- 运动会入场式异彩纷呈