Node.js:开启照片上传新时代
打工仔们,手机里照片太多发愁吗?说出来酸得慌,但我有办法。只要用下Node.js程序,简单几个步骤就搞定!别羡慕我快来看~
Node.js模块安装:简单粗暴
咱们先装上两个小程序:node-exiftool和formidable。安心,他们真的很棒哒!再借助npm的帮助,让node-exiftool变得更强大。在Node.js的圈子里,这货可是老大级别的随便就能下好装好,啥问题也能很快解决!
var http = require('http'); var exiftool = require('node-exiftool'); var formidable = require('formidable'); http.createServer(function (req, res) { if (req.url == '/upload' && req.method.toLowerCase() == 'post') { var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { if (err) throw err; var ep = new exiftool.ExiftoolProcess(); ep.open(); ep.readMetadata(files.file.path, ['-File:all'], function (error, metadata) { if (error) throw error; console.log(metadata); }); res.writeHead(200, {'Content-Type': 'text/html'}); res.end('success'); }); return; } res.writeHead(200, {'Content-Type': 'text/html'}); res.end(``); }).listen(8080); console.log('Server running at http://127.0.0.1:8080/');
Node.js监听请求:别墨迹
想搞手机图可不容易,得顺着http模块看看客户咋溜达。接着就是处理照片环节了,这时候得用 node-exiftool 助一臂之力。最后,用 formidable 这小子把照片上传到网上就OK。别再犹豫,赶紧开干呗!
启动应用程序:命令在手
var exiftool = require('node-exiftool');
试试看在浏览器输入8080/,和打游戏感觉差不多!
元数据信息获取:麻利点
var ep = new exiftool.ExiftoolProcess(); ep.open();
简单得很!装个能干活儿的工具 node-exiftool,然后激活 ‘exiftool’这个小助手,加上个名叫 readMetadata 的技能,图里的秘密瞬间全知道!别犹豫,赶紧动手,程序早就在等你揭开那些你可能都没发现过的秘密
文件上传处理:拿来主义
ep.readMetadata(files.file.path, ['-File:all'], function (error, metadata) { if (error) throw error; console.log(metadata); });
要快速把图传到服务器?有个神器叫做IncomingForm!搭配’parse’技能探测所有上传的文件,简直毫不费力。这下不仅能看见表格填写内容,还能了解每个文件的“底细”哟~
文件保存操作:稳住!
搞定没,传上去了吗?试试在Node.js里用FS模块搞个备份!记得换个地儿放文件,rename方法挺好用的。
var formidable = require('formidable');
完整代码示例:省心又省力
这事儿可简单了,咱的Node.js就那么厉害。用着方便,手机拍完照片一点就能传上服务器,轻松搞定!
var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { if (err) throw err; });
安全稳定性注意事项:小心为上
看清啦发来的消息别马虎,小心出岔子。咱这里得保证百分百不掉链子,这样才能安心做事!
var fs = require('fs'); fs.rename(files.file.path, __dirname + '/uploaded/' + files.file.name, function (err) { if (err) throw err; });
评论0