Node.js如何取得手機內圖片
Node.js是一種基於JavaScript的後端伺服器技術,它具有高效,靈活,易學易用等優點,現在被廣泛應用於Web開發等領域。
隨著行動裝置市場的不斷擴大,越來越多的人們開始使用智慧型手機來拍照、儲存和分享照片。但是,要在網路應用程式中對這些照片進行操作,需要取得手機內的照片,並將其上傳到伺服器上,這就需要使用Node.js來取得手機內的照片。
本文將介紹如何使用Node.js取得手機內的照片,並實現將其上傳到伺服器的功能。
第一步:安裝必備的模組
取得手機內的照片需要使用到node-exiftool和formidable這兩個Node.js模組,因此,需要先安裝它們。
可以使用npm安裝node-exiftool,npm是Node.js的套件管理工具,它可以方便地下載和安裝Node.js模組。輸入以下指令:
npm install node-exiftool
使用npm安裝formidable,輸入以下指令:
##npm install formidable
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(` <form action="/upload" method="post" enctype="multipart/form-data"> <div> <label>Select image:</label> <input type="file" name="file"> </div> <div> <button type="submit">Upload</button> </div> </form> `); }).listen(8080); console.log('Server running at http://127.0.0.1:8080/');
var exiftool = require('node-exiftool');
var ep = new exiftool.ExiftoolProcess(); ep.open();
ep.readMetadata(files.file.path, ['-File:all'], function (error, metadata) { if (error) throw error; console.log(metadata); });
var formidable = require('formidable');
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; });
var http = require('http'); var exiftool = require('node-exiftool'); var formidable = require('formidable'); var fs = require('fs'); 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); }); fs.rename(files.file.path, __dirname + '/uploaded/' + files.file.name, function (err) { if (err) throw err; }); res.writeHead(200, {'Content-Type': 'text/html'}); res.end('success'); }); return; } res.writeHead(200, {'Content-Type': 'text/html'}); res.end(` <form action="/upload" method="post" enctype="multipart/form-data"> <div> <label>Select image:</label> <input type="file" name="file"> </div> <div> <button type="submit">Upload</button> </div> </form> `); }).listen(8080); console.log('Server running at http://127.0.0.1:8080/');
以上是nodejs如何取得手機內圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!