NTM Solutions

Thứ Năm, 18 tháng 6, 2020

NODEJS-BÀI 08-UPLOAD TẬP TIN


Xem Mục lục Lâp trình NodeJS


Module Formidable

Đây là 01 module rất thích hợp cho việc upload tập tin, có tên là “Formidable

Module Formidable có thể tải xuống và cài đặt bằng NPM

npm install formidable

Sau khi tải về module Formidable, bạn có thể đính kèm module vào ứng dụng.

var formidable = require('formidable');

Upload tập tin

Bây giờ bạn đã sẵn sàng để làm 01 trang web bằng NODEJS cho phép người dùng upload tập tin lên máy chủ của bạn.

Bước 01: tạo biểu mẫu upload

Tạo 01 tập tin NODEJS ghi ra 01 biểu mẫu HTML, trong đó có trường upload:

Ví dụ:
var http = require('http');

http.createServer(
function (req, res) {
  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(
8080);

Bước 02: đưa tập tin upload lên

Đính kèm module Formidable để có thể đưa tập tin upload lên 01 khi nó tới được máy chủ.

Khi tập tin được upload lên, nó chiếm 01 chỗ trong thư mục tạm trên máy chủ.

Ví dụ:

var http = require('http');
var formidable = require('formidable');

http.createServer(
function (req, res) {
  
if (req.url == '/fileupload') {
    
var form = new formidable.IncomingForm();
    form.parse(req, 
function (err, fields, files) {
      res.write(
'File uploaded');
      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(
8080);

Bước 03: lưu tập tin vào thư mục

Khi 01 tập tin được tải lên máy chủ thành công, nó chiếm 01 chỗ trong thư mục tạm.

Đường dẫn đến thư mục này có thể tìm thấy trong đối tượng “file”, là tham số thứ 03 trong phương thức parse()

Để di chuyển tập tin đến thư mục bạn muốn, dùng module File System, và đổi tên tập tin:

var http = require('http');
var formidable = require('formidable');
var fs = require('fs');

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 = 'C:/Users/Your Name/' + files.filetoupload.name;
      fs.rename(oldpath, newpath, 
function (err) {
        
if (err) throw err;
        res.write(
'File uploaded and moved!');
        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(
8080);

Nếu vẫn chưa rõ các bạn xem thêm video clip sau:


Các bạn hãy bấm nút LIKE  SHARE để mình có động lực viết thêm nhiều nhiều bài viết nữa.
By #drM

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS