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!
