使用post方式提交表单如何获取图片数据及其他文本参数[NodeJS]
当POST方式提交包含图片的表单时,如上传图片时,需要在<form>字段需要添加参数enctype="multipart/form-data",表明以二进制方式传输数据。假如表单中包含其他文本参数,如用户名username,用常规方式是无法获取post参数的,如:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
</head>
<body>
<form action="/upload" enctype="multipart/form-data" method="post">
<input type="file" name="upload" />
<input type="text" name="username" value="123"/>
<input type="submit" value="确定" />
</form>
</body>
</html>
var postdata = "";
request.addListener("data",function(postchunk){
postdata += postchunk;
}); //POST结束输出结果
request.addListener("end",function(){
console.log(postdata);
var params = querystring.parse(postdata);
console.log(params["username"]);
});
控制台显示的将是undefined,而不是我们所期望的123。因为整个表单都是以二进制传输数据,request就获得username字段的值。
这种情况,就需要引入第三方formidable模块:
var form = new formidable.IncomingForm();
form.uploadDir = uploadImgDir;
form.parse(request, function(error, fields, files) {
console.log("parsing done");
console.log(files.upload.path);
console.log(fields["username"]);
fs.renameSync(files.upload.path, uploadImgDir + "name.png");
});
在调用formidable.IncomingForm的parse方法后,其回调会返回三个参数,分别为异常,文本参数Object和图片文件数据。
在回调中使用fields["username"],就可以正常获取username参数了。
使用post方式提交表单如何获取图片数据及其他文本参数[NodeJS]的更多相关文章
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...
- SpringMVC(十四):SpringMVC 与表单提交(post/put/delete的用法);form属性设置encrypt='mutilpart/form-data'时,如何正确配置web.xml才能以put方式提交表单
SpringMVC 与表单提交(post/put/delete的用法) 为了迎合Restful风格,提供的接口可能会包含:put.delete提交方式.在springmvc中实现表单以put.dele ...
- POST方式提交表单时,后台接受实体如果继承了父类,将无法映射表单对应数据
引言 刚才在做一个post提交表单时,我在表单里放了几个隐藏域用来存放数据,表单name属性和后台实体属性签名保持一致.只是后台Action参数包含继承关系,所以无法获取到表单对应的值.刚开始一直纳闷 ...
- KindEditor:Ajax提交表单时获取不到HTML内容
当用Ajax提交表单时,KindEditor的内容获取不到,HTML数据获取不了 原因:当ajax提交时,KindEdito的HTML数据还没有同步到表单中来,那怎么去获取HTML数据呢? ----- ...
- spring-boot restful put方式提交表单
使用spring-boot 做接口,如果按restful的路由形式想使用put方式进行表单提交,第一个参数应该为文件参数,代码如下: @PutMapping("/http-put" ...
- tp5中ajax方式提交表单
用ajax提交表单,迅速,快捷,实现页面无刷新提交表单. <!DOCTYPE html> <html lang="en"> <head> < ...
- 调用submit()方式提交表单
今天在看高级程序设计时看到的这样一段话: 在以调用submit()方法的形式提交表单时,不会触发submit事件 写了一个小例子做了下测试,的确如此: <form id="fm&quo ...
- HPCMS V9使用ajax方式提交表单
一.前台模板(注:需要引入jquery文件) <form id="myform" class="subscribe-form subscription" ...
- java模拟post方式提交表单实现图片上传【转】
转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下: <form action="up_result ...
随机推荐
- markdown简介
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...
- Visual Studio Emulator for Android 的安装与使用 感觉最干净好看的模拟器.
Step1 win8+ 6G+ 添加删除程序\ hyper 创建虚拟机 安装visual studio android 模拟器, 自带三个模拟器 使用管理员打开模拟器 参考文献 Visual Stu ...
- JavaCV配置
下载javacv-1.2-bin.zip https://github.com/bytedeco/javacv 解压 在Eclipse项目 Referenced Libraries 中 Add Ext ...
- iOS之开发小技巧
1.xcode如何添加快捷代码 xcode添加快捷代码 属性 2.cocoapods安装 cocoapods安装 3.iOS真机调试 真机调试 4.命令行自动打包 xcrun -sdk iphoneo ...
- js打印对象数组信息
function writeObj(obj){ var description = ""; for(var i in obj){ var property=obj[i]; desc ...
- kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...
- JS中,!=, !== 和 !的区别和使用场景
var num = 1; var str = '1'; var test = 1; test == num //true 相同类型 相同值 test === num //true 相同类型 ...
- oracle表分区以及普表转分区表(转)
概述 Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操作的性能大大提高.此外,分区还可以极大简化常见的管理任务,分区是构建 ...
- SOUI Editor使用教程
感谢网友"指尖"为SOUI开发的UiEditor, 目前该UI编辑器已经基本可用, 源代码在soui svn demos\uieditor. 下面是"指尖"提供 ...
- winform快速开发平台 -> 工作流组件(仿GooFlow)
对于web方向的工作流,一直在用gooflow对于目前我的winform开发平台却没有较好的工作流组件. 针对目前的项目经验告诉我们.一个工作流控件是很必要的. 当然在winform方面的工作流第三 ...