Node实现简单的表单+图片上传+路由
来源:互联网 发布:spss数据显著性分析 编辑:程序博客网 时间:2024/06/06 00:18
Node实现一个表单处理+图片上传功能,不是用express
1.使用formidable模块用于上传文件(图片)的处理。注意form表单要使用multipart/form-data属性。
2.使用chunk分段接收,原因是当接受了一小段,可能就给别人服务了。防止一个过大的表单阻塞了整个进程
3.上传上去的图片使用formidable自定义路径,用fs改名。
4.实现简单的路由。
var http = require("http");var querystring = require("querystring");var formidable = require('formidable');var util = require("util");var sd = require("silly-datetime");var fs = require("fs");var path = require("path");//创建服务器创建服务器var server = http.createServer(function (req, res) { if(req.url == "/dopost" && req.method.toLowerCase() == "post") { //Create a new incoming form. var form = new formidable.IncomingForm(); form.uploadDir = "./uploads"; //执行里面的回调函数的时候,表单已经全部接收完毕了 form.parse(req, function (err, fields, files) { if(err) { throw err; } console.log(util.inspect({fields:fields,files:files})); //时间,使用了第三方模块,silly-datetime var ttt = sd.format(new Date(), "YYYMMDDHHmmss"); var ran = parseInt(Math.random() * 89999 + 10000); var extname = path.extname(files.tupian.name); //执行改名 var oldpath = __dirname + "/" + files.tupian.path; //新的路径由三个部分组成:时间戳,随机数,拓展名 var newpath = __dirname + "/uploads/" + ttt + ran + extname; fs.rename(oldpath,newpath,function (err) { if(err) { throw Error("改名失败") } res.writeHead(200, {"Content-type":"text/plain"}); res.end("success"); }); }); }else if(req.url == "/") { //呈现form.html fs.readFile("./form.html", function (err,data) { res.writeHead(200, {"content-type":"text/html"}); res.end(data); }) }else { res.writeHead(404,{"content-type":"text/html"}); res.end("404"); }});server.listen(3000,"127.0.0.1");
阅读全文
0 0
- Node实现简单的表单+图片上传+路由
- node koa2图片上传的实现
- Node层模拟实现multipart表单的文件上传
- Node层模拟实现multipart表单的文件上传
- node.js学习(2)--路由功能以及表单上传
- 图片+表单的上传
- node.js实现提交简单的form表单
- 基于Node的React图片上传组件实现
- 基于Node的React图片上传组件实现
- php 实现简单的图片上传代码
- php中图片上传的简单实现
- PHP+ajax图片上传的简单实现
- android实现简单的图片上传服务器
- 表单存在图片上传的情况 servlet表单图片上传
- node.js实现多图片上传
- Node.js实现多图片上传
- Node Js 实现图片上传 学习笔记
- ajaxSubmit 提交表单实现图片上传
- 从零开始搞懂Android网络请求——HttpURLConnection
- 51nod 1050 循环数组最大子段和
- 11.06 CSS的基础应用2
- 卡尔曼滤波学习心得(1)方程推导
- 我的Qt学习之路——标准对话框
- Node实现简单的表单+图片上传+路由
- 随机抽取名字
- 简单ioc模拟-使用工厂方法
- win10环境下,解决javac不是内部或外部命令
- HDU 1272 小希的迷宫
- Interactive Data Visualization for the Web, 2nd Edition.pdf 英文原版 免费下载
- java日常学习:异常和finally块
- 【Unity】图形渲染优化、渲染管线优化、图形性能优化
- 三元表达式