การสร้างระบบอัพโหลดไฟล์ด้วย Node.js Upload Files

สร้างระบบอัพโหลดไฟล์ได้ง่ายด้วย module Formidable ครับ

ก่อนอื่นต้องติดตั้ง module Formidable ก่อนครับด้วยคำสั่งดังนี้

$ cd myApp

$ npm install formidable

ต่อจากนั้น สร้างโฟลเดอร์สำหรับเก็บรูปเอาไว้ก่อนครับ

$ mkdir uploads

มาต่อกันเลยครับ

ขั้นตอนที่ 1: สร้างไฟล์ uploadfile.js

$ vim uploadfile.js

var http = require(‘http’);
var formidable = require(‘formidable’);
var fs = require(‘fs’);
var path = require(‘path’);
http.createServer(function (req, res) {
 if (req.url == ‘/fileupload’) {
 var form = new formidable.IncomingForm();
 form.parse(req, function (err, fields, files) {
 var oldpath = files.filetoupload.path;
 var newpath = ‘/home/redduckok/myApp/uploads/’ + files.filetoupload.name;
 fs.rename(oldpath, newpath, function (err) {
 if (err) throw err;
 res.write(‘File ‘ + files.filetoupload.name + ‘ is uploaded and moved to folder uploads success.’);
 res.end();
 });
 });
 } else {
 res.writeHead(200, {‘Content-Type’: ‘text/html’});
 res.write(‘<form action=”fileupload” method=”post” enctype=”multipart/form-data”>’);
 res.write(‘<input type=”file” name=”filetoupload”><br>’);
 res.write(‘<input type=”submit”>’);
 res.write(‘</form>’);
 return res.end();
 }
}).listen(3000);

หมายเหตุ newpath = /home/redduckok/myApp/uploads/ ในส่วนของ redduckok คือ user folder ของผมครับ ซึ่งอาจแตกต่างจากของท่าน

ขั้นตอนที่ 2: สั่งรัน โปรแกรม

$ node uploadfile.js

ขั้นตอนที่ 3: เปิด browser แล้วพิมพ์ดังนี้

http://localhost:3000

เมื่ออัพโหลดไฟล์เสร็จเรียบร้อย

จากนั้นไปตรวจสอบโฟลเดอร์ uploads ว่ามีไฟล์เข้ามาจริงหรือไม่?

ไฟล์เข้ามาเรียบร้อยครับ เราสามารถนำไปประยุกต์ใช้ในการอัพโหลดไฟล์ได้ครับ.

Like what you read? Give RedduckOK a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.