Node.js Laai lêers op


Die formidabele module

Daar is 'n baie goeie module om met lêeroplaaie te werk, genaamd "Formidable".

Die Formidable-module kan met behulp van NPM afgelaai en geïnstalleer word:

C:\Users\Your Name>npm install formidable

Nadat jy die Formidable-module afgelaai het, kan jy die module by enige toepassing insluit:

var formidable = require('formidable');

Laai lêers op

Nou is jy gereed om 'n webblad in Node.js te maak waarmee die gebruiker lêers na jou rekenaar kan oplaai:

Stap 1: Skep 'n oplaaivorm

Skep 'n Node.js-lêer wat 'n HTML-vorm skryf, met 'n oplaaiveld:

Voorbeeld

Hierdie kode sal 'n HTML-vorm produseer:

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);

Stap 2: Ontleed die opgelaaide lêer

Sluit die Formidable-module in om die opgelaaide lêer te kan ontleed sodra dit die bediener bereik.

Wanneer die lêer opgelaai en ontleed word, word dit in 'n tydelike vouer op jou rekenaar geplaas.

Voorbeeld

Die lêer sal opgelaai word en in 'n tydelike vouer geplaas word:

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);


Stap 3: Stoor die lêer

Wanneer 'n lêer suksesvol na die bediener opgelaai is, word dit op 'n tydelike vouer geplaas.

Die pad na hierdie gids kan gevind word in die "lêers" voorwerp, deurgegee as die derde argument in die parse()metode se terugbelfunksie.

Om die lêer na die gids van jou keuse te skuif, gebruik die Lêerstelsel-module en hernoem die lêer:

Voorbeeld

Sluit die fs-module in en skuif die lêer na die huidige vouer:

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.filepath;
      var newpath = 'C:/Users/Your Name/' + files.filetoupload.originalFilename;
      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);