- formidable的简单的使用
-
formidable是第三方包,用于处理上传的文件
-
使用时要用npm下载,然后导入文件中
-
- 使用formidable处理上传的文件(post请求)
- 导入formidable第三方包
var formidable = require('formidable');
- 创建form表单
var form = new formidable.IncomingForm();
-
- 使用form表单解析对应的请求
-
fields:表示所有的域,就是和input相关的东西包括 checkbox radioBox
-
files:表示所有的和上传文件相关的内容
form.parse(req,function (err, fields, files) {
console.log(files);
console.log(fields);
console.log(files.tupian.path);
})
- 我们需要在解析之前设置对应的上传的图片的路径
form.uploadDir = "./upload";
- form表单为:form.html
<!--设置的action为dopost:可以确定提交的url地址,
enctype:multipart/form-data:如果是上传或者下载就利用前面设置的格式
注意:一定要设置
-->
<form action="http://127.0.0.1:3000/dopost" method="post" enctype="multipart/form-data">
<!--<form action="http://127.0.0.1:3000/dopost" method="post">-->
<p>
姓名 : <input type="text" name="name">
</p>
<p>
性别 :
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
</p>
<p>
爱好:
<input type="checkbox" name="hobby" value="睡觉" />睡觉
<input type="checkbox" name="hobby" value="吃饭" />吃饭
<input type="checkbox" name="hobby" value="足球" />足球
</p>
<p>
图片:
<input type="file" name="tupian" />
</p>
<p>
<input type="submit" />
</p>
</form>
- 处理post请求和文件上传的代码:
var http = require('http');
var formidable = require('formidable');
var server = http.createServer(function (req, res) {
if (req.url == '/dopost' && req.method.toLowerCase() == 'post'){
/*1.创建form表单*/
var form = new formidable.IncomingForm();
/*1.1.我们需要在解析之前设置对应的上传的图片的路径*/
form.uploadDir = "./upload";
/*2.使用form表单解析对应的请求*/
form.parse(req,function (err, fields, files) {
/*fields:表示所有的域,就是和input相关的东西包括 checkbox radioBox
* files:表示所有的和上传文件相关的内容*/
console.log(fields);
console.log(files);
console.log(files.tupian.path);
})
}
res.end('成功');
});
server.listen(3000,'127.0.0.1');
网友评论