分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Node实现简单的表单+图片上传+路由

发布时间:2023-09-06 01:08责任编辑:傅花花关键词:Node

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");

Node实现简单的表单+图片上传+路由

原文地址:http://www.cnblogs.com/zhangmingzhao/p/7795908.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved