Nodejsで携帯電話から写真を取得する方法

WBOY
リリース: 2023-05-25 11:10:37
オリジナル
611 人が閲覧しました

Node.js が携帯電話から写真を取得する方法

Node.js は JavaScript をベースにしたバックエンド サーバー テクノロジであり、高効率、柔軟性、学習と使用が簡単という利点があります。現在、Web 開発やその他の分野で広く使用されています。

モバイル デバイス市場が拡大し続けるにつれて、スマートフォンを使用して写真を撮影、保存、共有する人がますます増えています。ただし、これらの写真を Web アプリケーションで操作するには、携帯電話内の写真を取得してサーバーにアップロードする必要があり、そのためには Node.js を使用して携帯電話内の写真を取得する必要があります。

この記事では、Node.jsを使って携帯電話から写真を取得し、サーバーにアップロードする機能を実装する方法を紹介します。

ステップ 1: 必要なモジュールをインストールする

携帯電話で写真を取得するには、node-exiftool と formidable という 2 つの Node.js モジュールを使用する必要があるため、最初にそれらをインストールする必要があります。

npm を使用して、node-exiftool をインストールできます。npm は、Node.js のパッケージ管理ツールです。Node.js モジュールを簡単にダウンロードしてインストールできます。次のコマンドを入力します:

npm install node-exiftool

npm を使用して formidable をインストールするには、次のコマンドを入力します:

npm install恐るべき

ステップ 2: コードを記述する

電話で写真を取得するには、Node.js の http モジュールを使用してクライアントのリクエストをリッスンし、ノードを使用する必要があります。 exiftool モジュールを使用して写真のメタデータ情報を取得し、強力なモジュールを使用して画像をサーバーにアップロードします。

写真を取得するコードは次のとおりです:

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 コマンドでアプリケーションを起動し、「http://127.0.0.1:8080/」と入力します。ブラウザのテスト。

ステップ 3: メタデータ情報を取得する

node-exiftool モジュールを使用してメタデータ情報を取得するには、exiftool プロセスを開き、readMetadata メソッドを使用して画像のメタデータ情報を読み取る必要があります。

まず、node-exiftool をコードに導入する必要があります:

var exiftool = require('node-exiftool');
ログイン後にコピー

次に、exiftool プロセスをインスタンス化し、open メソッドを使用してプロセスを開く必要があります:

var ep = new exiftool.ExiftoolProcess(); ep.open();
ログイン後にコピー

最後に、readMetadata メソッドを使用して、画像のメタデータ情報を読み取ります。

ep.readMetadata(files.file.path, ['-File:all'], function (error, metadata) { if (error) throw error; console.log(metadata); });
ログイン後にコピー

readMetadata メソッドは、ファイルのパス、パラメータ オプション、コールバック関数の 3 つのパラメータを受け取る必要があります。上記のコードでは、「-File:all」パラメーター オプションを使用して、すべてのメタデータ情報を取得します。コールバック関数によって取得されるメタデータはメタデータ オブジェクトです。

ステップ 4: サーバーに写真をアップロードする

強力なモジュールを使用して画像をサーバーにアップロードするには、強力な IncomingForm クラスの助けが必要です。このクラスの parse メソッドはフォーム データを解析できます。アップロードされたドキュメントを取得します。

まず、コードに強力なモジュールを導入する必要があります:

var formidable = require('formidable');
ログイン後にコピー

次に、IncomingForm クラスの parse メソッドを通じてフォーム データを解析し、アップロードされたファイルを取得します:

var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { if (err) throw err; });
ログイン後にコピー

ファイル内 オブジェクトでは、ファイル名、ファイル サイズ、ファイル タイプ、一時ファイル パスなど、アップロードされたファイルに関する関連情報を取得できます。

最後に、Node.js の組み込み fs モジュールを使用して、ファイルをサーバーに保存できます。

var fs = require('fs'); fs.rename(files.file.path, __dirname + '/uploaded/' + files.file.name, function (err) { if (err) throw err; });
ログイン後にコピー

rename メソッドは、一時ファイルをサーバー上の指定されたディレクトリに移動します。 , __dirname は、現在のファイルが配置されているディレクトリを示します。

ステップ 5: 完全なコード例

上記のステップを統合すると、携帯電話から写真を取得して、それらをサーバ。

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(` 
`); }).listen(8080); console.log('Server running at http://127.0.0.1:8080/');
ログイン後にコピー

結論

以上は、Node.js を使用して、http モジュール、node-exiftool モジュール、Node の強力なモジュールを使用して、携帯電話内の写真を取得する方法の紹介です。 jsを使用すると、携帯電話内の写真をサーバーにアップロードする機能を簡単に実装できます。さらに、開発プロセスではセキュリティと安定性に注意を払う必要があり、ユーザーがアップロードしたファイルは正しく検証され、処理される必要があります。

以上がNodejsで携帯電話から写真を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!