Node.js फ़ाइलें अपलोड करें
दुर्जेय मॉड्यूल
फ़ाइल अपलोड के साथ काम करने के लिए एक बहुत अच्छा मॉड्यूल है, जिसे "फॉर्मिडेबल" कहा जाता है।
दुर्जेय मॉड्यूल को एनपीएम का उपयोग करके डाउनलोड और स्थापित किया जा सकता है:
C:\Users\Your Name>npm install formidable
आपके द्वारा दुर्जेय मॉड्यूल को डाउनलोड करने के बाद, आप किसी भी एप्लिकेशन में मॉड्यूल को शामिल कर सकते हैं:
var formidable = require('formidable');
फाइल अपलोड करो
अब आप Node.js में एक वेब पेज बनाने के लिए तैयार हैं जो उपयोगकर्ता को आपके कंप्यूटर पर फाइल अपलोड करने देता है:
चरण 1: एक अपलोड फॉर्म बनाएं
एक अपलोड फ़ील्ड के साथ एक HTML फॉर्म लिखने वाली Node.js फ़ाइल बनाएँ:
उदाहरण
यह कोड एक HTML फॉर्म तैयार करेगा:
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);
चरण 2: अपलोड की गई फ़ाइल को पार्स करें
सर्वर पर पहुंचने के बाद अपलोड की गई फ़ाइल को पार्स करने में सक्षम होने के लिए दुर्जेय मॉड्यूल शामिल करें।
जब फ़ाइल अपलोड और पार्स की जाती है, तो यह आपके कंप्यूटर पर एक अस्थायी फ़ोल्डर में रख दी जाती है।
उदाहरण
फ़ाइल अपलोड की जाएगी, और एक अस्थायी फ़ोल्डर पर रखी जाएगी:
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);
चरण 3: फ़ाइल सहेजें
जब कोई फ़ाइल सर्वर पर सफलतापूर्वक अपलोड हो जाती है, तो उसे एक अस्थायी फ़ोल्डर में रखा जाता है।
इस निर्देशिका का पथ "फाइल" ऑब्जेक्ट में पाया जा सकता है, जिसे parse()
विधि के कॉलबैक फ़ंक्शन में तीसरे तर्क के रूप में पारित किया गया है।
फ़ाइल को अपनी पसंद के फ़ोल्डर में ले जाने के लिए, फ़ाइल सिस्टम मॉड्यूल का उपयोग करें, और फ़ाइल का नाम बदलें:
उदाहरण
fs मॉड्यूल शामिल करें, और फ़ाइल को वर्तमान फ़ोल्डर में ले जाएँ:
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);