English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Node.jsファイルアップロード–このNode.jsチュートリアルでは、WebクライアントからファイルをNode.jsサーバーにアップロードする方法を学びます。言い換えれば、クライアントがNode.jsサーバーにファイルをアップロードできると言えます。
ファイルをNode.jsサーバーにアップロードするには、以下の手順に従ってください:
この例では、http、fs、強力モジュールを使用します。http:サーバー活動用。ノードfs:アップロードされたファイルをサーバーの特定の場所に保存します。強力:htmlフォームデータを解析します。上記のモジュールがまだインストールされていない場合、NPMを使用してすぐにインストールできます。ターミナルで以下のコマンドを実行して各モジュールをインストールします:
npm install http npm install fs npm install formidable |
以下のフォームを使用してHTMLページ(upload_file.html)を準備し、ファイルアップロードとフォーム送信の入力タグを含めます。
<form action="fileupload" method="post" enctype="multipart/form-data"> <input type="file" name="filetoupload"> <input type="submit" value="Upload"> </form>
リスニングポートを生成8086のHTTPサーバー(ポートを変更できます)を生成し、以下のように2つのURLにサーバーを提供します:
http.createServer(function (req, res) { if (req.url == '/uploadform') { // リクエストURLに「 / uploadform” // アップロードテーブルを含むHTMLファイルで応答を埋める } else if (req.url == '}}/fileupload') { // リクエストURLに「 / fileupload” // 強力なモジュールを使用 // フォームデータ(アップロードされたファイルを含む)を読み取ります // そしてファイルを特定の場所に保存します。 ).listen(8086);
強力なモジュールを使用して、フォーム要素を解析し、ファイルを特定の場所に保存します。ファイルがアップロードされた後、ファイルのアップロードが成功したと表示するメッセージを表示する可能性があります。最初に、ファイルは一時的な場所に保存されます。fs.rename()メソッドを使用して、新しいパスを使用してファイルを必要な場所に移動することができます。
var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { // oldpath:ファイルが保存される一時フォルダー var oldpath = files.filetoupload.path; var newpath = upload_path + files.filetoupload.name; // ファイルを新しい位置にコピーします fs.rename(oldpath, newpath, function(err) { if (err) throw err; // 他のHTMLページを使用して応答する可能性があります res.write('File uploaded and moved!'); res.end();
以下はNode.jsでのファイルアップロードの完全な例です
このサンプルには以下の2つのファイルがあります:
upload_file.html
<!DOCTYPE html> <html> <head> <title>Upload File</title> <style> body{text-align:center;} form{display:block;border:1px solid black;padding:20px;} </style> </head> <body> <h1>Upload files to Node.js Server</h1> <form action="fileupload" method="post" enctype="multipart/form-data"> <input type="file" name="filetoupload"> <input type="submit" value="Upload"> </form> </body> </html
var http = require('http'); var fs = require('fs'); var formidable = require('formidable'); // アップロードフォームを含むHTMLファイル var upload_html = fs.readFileSync("upload_file.html"); // それを保存されたアップロードファイルの場所に置き換える var upload_path = "/home/arjun/workspace/nodejs/upload_file/"; http.createServer(function (req, res) { if (req.url == '/uploadform') { res.writeHead;200); res.write(upload_html); return res.end(); } else if (req.url == '}}/fileupload') { var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { // oldpath:ファイルが保存される一時フォルダー var oldpath = files.filetoupload.path; var newpath = upload_path + files.filetoupload.name; // ファイルを新しい位置にコピーします fs.rename(oldpath, newpath, function(err) { if (err) throw err; // 他のHTMLページを使用して応答する可能性があります res.write('File uploaded and moved!'); res.end(); ).listen(8086);
ノードを持つターミナルでNode.jsスクリプトファイルを実行します
arjun@w3codebox:~/workspace/nodejs/upload_file$ node nodejs-upload-file.js
アップロードされたファイルはnode.jsファイルnodejsに保存されます-upload-file.jsの横。node.jsスクリプトファイルでこの位置を変更できます。
Webブラウザ(HTTPクライアント)を開き、URLをクリックしてください。 http:// localhost:8086/uploadform
ブラウザをクリックしてください。
ファイルを選択して、「開く」をクリックしてください。
現在、ファイルはフォームにアップロードされています。Node.jsのアップロードボタンをクリックしてフォーム要素を解析し、ファイルを保存します。
Node.jsスクリプトファイルの横のNode.jsサーバーを確認してください。
arjun@w3codebox:~/workspace/nodejs/upload_file$ ls blur1.jpg nodejs-upload-file.js upload_file.html
このNode.jsチュートリアル– Node.jsでファイルをサーバーにアップロード、私たちは強力なfsおよびhttpモジュールを使用してファイルをNode.jsサーバーにアップロードする方法を学びました。