<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="http://127.0.0.1:2000/dopost" method="post" enctype="multipart/form-data"> <input type="text" name="name"><br><br> <input type="text" name="age"><br><br> 性别:<br> <input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女<br><br> 爱好:<br> <input type="checkbox" name="like" value="睡觉">睡觉 <input type="checkbox" name="like" value="画画">画画 <input type="checkbox" name="like" value="游戏">游戏<br><br> <p> 图片: <input type="file" name="tupian" /> </p><br><br> <input type="submit"> </form> </body> </html>
/** * Created by Administrator on 2017/4/28 0028. */ var http = require('http'); var querystring = require('querystring'); var formidable = require('formidable'); var util = require('util'); var path = require('path'); var fs = require('fs'); var sd = require('silly-datetime'); var iTimer = sd.format(new Date(), 'YYYYMMDDHHmmss'); var server = http.createServer(function (req,res) { //如果你的访问地址是这个,并且请求类型是post if(req.url == '/dopost' && req.method.toLowerCase() == 'post'){ //解析文件上传 var form = new formidable.IncomingForm(); //设置文件上传存放置的位置 form.uploadDir = "./upload"; //执行里面回调函数的时候,表单已经全部接收完毕 form.parse(req, function(err, fields, files) { if(err){ throw err; } //获取已经有的路径 var oldpath = __dirname + '/' + files.tupian.path; //设置新的路径 var extname = path.extname(files.tupian.name);//获取原有图片的拓展名.jpg var imgran = parseInt(Math.random() * 8999 +1000); var imgname = iTimer + imgran;//设置新的图片名称 时间,使用了第三方模块,silly-datetime(iTimer) //新的路径由三个部分组成:时间戳、随机数、拓展名 var newpath = __dirname + '/upload/' + imgname +extname; fs.rename(oldpath,newpath,function (err) { if(err){ throw Error('图片识别失败'); } //所有的文本域、单选框,都在fields存放; //所有的文件域,files res.writeHead(200, {'content-type': 'text/plain'}); //res.write('received upload:\n\n'); res.end('上传成功'); }); // util.inspect({fields: fields, files: files}); //检查 }); }else if(req.url == '/'){ //提交index.html表单页面 fs.readFlie('./index.html',function (data) { res.writeHead(200,{"Content-type":"text/html"}); res.end('data'); }) }else{ res.writeHead(404,{"Content-type":"text/html"}); res.end('404'); } }) server.listen(2000,'127.0.0.1');
欢迎分享本文,转载请保留出处:前端ABC » Nodejs/formidable/上传图片/修改设置图片名称