Node.js fayl yuklash


Formidable moduli

Fayl yuklash bilan ishlash uchun "Formidable" deb nomlangan juda yaxshi modul mavjud.

Formidable modulini NPM yordamida yuklab olish va o‘rnatish mumkin:

C:\Users\Your Name>npm install formidable

Formidable modulini yuklab olganingizdan so‘ng uni istalgan ilovaga qo‘shishingiz mumkin:

let formidable = require('formidable');

Fayllarni yuklash

Endi Node.js’da foydalanuvchiga kompyuteringizga fayl yuklash imkonini beradigan veb-sahifa yaratishga tayyorsiz:

1-qadam: yuklash formasini yaratish

Fayl yuklash maydoniga ega HTML formani yozadigan Node.js faylini yarating:

Misol

Bu kod HTML forma hosil qiladi:

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

2-qadam: yuklangan faylni tahlil qilish (parse)

Yuklangan fayl serverga yetib kelgach, uni tahlil qila olish uchun Formidable modulini qo‘shing.

Fayl yuklanib, tahlil qilingach, u kompyuteringizdagi vaqtinchalik papkaga joylashtiriladi.

Misol

Fayl yuklanadi va vaqtinchalik papkaga joylashtiriladi:

let http = require('http'); let formidable = require('formidable'); http.createServer(function (req, res) {   if (req.url == '/fileupload') {     let 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);


3-qadam: faylni saqlash

Fayl serverga muvaffaqiyatli yuklanganda, u vaqtinchalik papkaga joylashtiriladi.

Bu katalogga yo‘lni parse() metodining callback funksiyasiga uchinchi argument sifatida uzatiladigan "files" obyektidan topish mumkin.

Faylni o‘zingiz tanlagan papkaga ko‘chirish uchun File System modulidan foydalaning va fayl nomini o‘zgartiring:

Misol

fs modulini qo‘shing va faylni joriy papkaga ko‘chiring:

let http = require('http'); let formidable = require('formidable'); let fs = require('fs'); http.createServer(function (req, res) {   if (req.url == '/fileupload') {     let form = new formidable.IncomingForm();     form.parse(req, function (err, fields, files) {       let oldpath = files.filetoupload.filepath;       let 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);

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!