大家好,欢迎来到IT知识分享网。
今天分享一下nodejs的post请求之formidable模块.话不多说,直接上代码
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>NodeJS的post请求</title>
</head>
<body>
<div id="main" style="width:800px;height:400px">
<form action="shangchuan" method="post" enctype="multipart/form-data">
<p>
请输入一张图片:
<input type="file" name="wenjian">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
</div>
</body>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</html>
inex.js
/*
* 这个案例演示POST请求的formidable模块
* */
var finalhandler=require("finalhandler");
var http=require("http");
var serveStatic=require("serve-static");
var url=require("url");
var fs=require("fs");
var querystring=require("querystring");
var formidable=require("formidable");
var path=require("path");
//配置静态资源服务器,将public文件夹静态化出来
var serve=serveStatic("public",{"index":["index.html","index.htm"]})
var server=http.createServer(function onRequest(req,res){
//路由
var pathname=url.parse(req.url).pathname;
console.log(pathname);
// res.setHeader('Content-Type', 'application/json;charset=utf-8');
if(pathname == "/shangchuan"){
// 创建一个表单的实例,这是formidable的API
// 请看https://npm.taobao.org/package/formidable
var form = new formidable.IncomingForm();
//设置上传的文件存放在哪里
form.uploadDir = "./math-tool";
//处理表单
form.parse(req, function(err, fields, files) {
//fields 表示普通控件 files表示文件控件
console.log(fields);
console.log(files);
//验证是否有wenjian这个控件
if(!files.wenjian){
return;
}
//验证传输文件是否有名字
if(!files.wenjian.name){
res.end("please upload file");
return;
}
//得到拓展名
var extname=path.extname(files.wenjian.name);
//改名,因为formidable天生传输的文件是没有拓展名的
//fs的rename方法用来改名.files.wenjian.path就是它默认的路径+文件名,
// 改名为默认的路径+文件名+拓展名
fs.rename(files.wenjian.path,files.wenjian.path+extname,function () {
res.end("success");
})
});
return;
}
//使用静态资源
serve(req,res,finalhandler(req,res));
})
//listen
server.listen(3000,"127.0.0.1");
console.log("服务器已经运行在3000端口");
注意:index.html里面input[type=file]标签的name属性和index.js里面的files.wenjian对应
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15889.html