node.js初識10
阿新 • • 發佈:2018-03-08
erro oct type all lld mage 分享圖片 input min
post請求
form.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="http://127.0.0.1:3000/dopost" method="post" enctype="multipart/form-data"> <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> </body> </html>
enctype="multipart/form-data"是使用formidable第三方庫需要添加的
post.js
var http = require("http"); var querystring = require("querystring"); var server = http.createServer(function(req,res){ if(req.url == "/dopost" && req.method.toLowerCase()=="post"){ var alldata = ‘‘; //下面是post接收數據的一個公式 //node為了極致,他是一小段一小段接收的 //接受了一小段,可能就給別人去服務了。防止一個過大的表單阻塞了整個進程 req.addListener("data",function(chunk){ alldata +=chunk; console.log(chunk); }); //全部傳輸完畢 req.addListener("end",function(chunk){ console.log(alldata.toString()); var datastring = alldata.toString(); var dataObj =querystring.parse(datastring); console.log(dataObj); console.log(dataObj.name); console.log(dataObj.sex); res.end("success"); }); } }); server.listen(3000,"127.0.0.1");
node post.js
這裏上傳圖片是真的上傳了,默認是放在一個c盤的一個地方,我們可以修改上傳圖片的路徑並且改名的
post1.js
var formidable = require(‘formidable‘); var http = require("http"); var fs = require("fs"); var sd = require("silly-datetime"); var querystring = require("querystring"); var path = require("path"); var server = http.createServer(function(req,res){ if (req.url == ‘/dopost‘ && req.method.toLowerCase() == ‘post‘) { // parse a file upload var form = new formidable.IncomingForm(); form.uploadDir = "./upload"; form.parse(req, function(err, fields, files) { // 所有的文本域,單選框都在fields; // 所有的文件域,都在files; var ttt = sd.format(new Date(),‘YYYYMMDDHHmmss‘); var ran = parseInt(Math.random()*89999+1000); var extname = path.extname(files.tupian.name); var oldpath =__dirname+"/"+files.tupian.path; var newpath = __dirname + "/upload/"+ ttt + ran + extname; fs.rename(oldpath,newpath,function(err){ if(err){ throw Error("改名失敗") }; console.log(fields); console.log(files); res.writeHead(200, {‘content-type‘: ‘text/plain‘}); res.end("success"); }); }); } }); server.listen(3000,"127.0.0.1");
node post1.js
然後你可以在你同級目錄的upload文件夾裏查看到你上傳的圖片
node.js初識10