Nodejsで携帯電話から写真を取得する方法
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(` <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/');
上記のコードでは、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(` <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/');
結論
以上は、Node.js を使用して、http モジュール、node-exiftool モジュール、Node の強力なモジュールを使用して、携帯電話内の写真を取得する方法の紹介です。 jsを使用すると、携帯電話内の写真をサーバーにアップロードする機能を簡単に実装できます。さらに、開発プロセスではセキュリティと安定性に注意を払う必要があり、ユーザーがアップロードしたファイルは正しく検証され、処理される必要があります。
以上がNodejsで携帯電話から写真を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、functionコンポーネントでのデータフェッチやDOM操作などの副作用を管理するためのフックであるReactの使用Effectについて説明します。メモリリークなどの問題を防ぐための使用、一般的な副作用、およびクリーンアップについて説明します。

怠zyな読み込みは、必要になるまでコンテンツの読み込みを遅延させ、初期負荷時間とサーバーの負荷を削減することにより、Webパフォーマンスとユーザーエクスペリエンスを改善します。

この記事では、JavaScriptのカレーについて説明します。これは、マルチアーグメント関数を単一argument関数シーケンスに変換する手法です。 Curryingの実装、部分的なアプリケーションなどの利点、実用的な用途、コード読み取りの強化を調査します

JavaScriptの高次関数は、抽象化、共通パターン、および最適化技術を通じて、コードの簡潔さ、再利用性、モジュール性、およびパフォーマンスを強化します。

この記事では、Virtual DOMツリーを比較してDOMを効率的に更新するReactの調整アルゴリズムについて説明します。パフォーマンスの利点、最適化技術、ユーザーエクスペリエンスへの影響について説明します。

記事では、Connect()、MapStateToprops、MapDispatchToprops、およびパフォーマンスへの影響を説明するReduxストアに反応コンポーネントをReduxストアに接続します。

この記事では、ReactのUseContextを説明しています。これにより、小道具掘削を避けることで国家管理を簡素化します。再レンダーの削減により、集中状態やパフォーマンスの改善などの利点について説明します。

記事では、PreventDefault()メソッドを使用して、イベントハンドラーのデフォルト動作の防止、ユーザーエクスペリエンスの強化などの利点、およびアクセシビリティの懸念などの潜在的な問題について説明します。
