Node.js
फाइल अपलोड
खोज…
मुलर का उपयोग करके सिंगल फाइल अपलोड
स्मरण में रखना
- अपलोड के लिए फ़ोल्डर बनाएँ (उदाहरण में
uploads
)। - multer npm
npm i -S multer
स्थापित करें
server.js
:
var express = require("express");
var multer = require('multer');
var app = express();
var fs = require('fs');
app.get('/',function(req,res){
res.sendFile(__dirname + "/index.html");
});
var storage = multer.diskStorage({
destination: function (req, file, callback) {
fs.mkdir('./uploads', function(err) {
if(err) {
console.log(err.stack)
} else {
callback(null, './uploads');
}
})
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now());
}
});
app.post('/api/file',function(req,res){
var upload = multer({ storage : storage}).single('userFile');
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
});
app.listen(3000,function(){
console.log("Working on port 3000");
});
index.html
:
<form id = "uploadForm"
enctype = "multipart/form-data"
action = "/api/file"
method = "post"
>
<input type="file" name="userFile" />
<input type="submit" value="Upload File" name="submit">
</form>
ध्यान दें:
एक्सटेंशन के साथ फाइल अपलोड करने के लिए आप Node.js पाथ -इन लाइब्रेरी का उपयोग कर सकते हैं
इसके लिए बस server.js
फ़ाइल के लिए path
आवश्यकता होती path
:
var path = require('path');
और परिवर्तन:
callback(null, file.fieldname + '-' + Date.now());
निम्नलिखित तरीके से फ़ाइल एक्सटेंशन जोड़ना:
callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
एक्सटेंशन द्वारा अपलोड कैसे फ़िल्टर करें:
इस उदाहरण में, केवल कुछ एक्सटेंशन की अनुमति देने के लिए फ़ाइलों को अपलोड करने का तरीका देखें।
उदाहरण के लिए केवल चित्र एक्सटेंशन। बस var upload = multer({ storage : storage}).single('userFile');
fileFilter स्थिति
var upload = multer({
storage: storage,
fileFilter: function (req, file, callback) {
var ext = path.extname(file.originalname);
if(ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg') {
return callback(new Error('Only images are allowed'))
}
callback(null, true)
}
}).single('userFile');
अब आप केवल छवि फ़ाइलों को png
, jpg
, gif
या jpeg
एक्सटेंशन के साथ अपलोड कर सकते हैं
दुर्जेय मॉड्यूल का उपयोग करना
मॉड्यूल स्थापित करें और डॉक्स पढ़ें
npm i formidable@latest
8080 पोर्ट पर सर्वर का उदाहरण
var formidable = require('formidable'),
http = require('http'),
util = require('util');
http.createServer(function(req, res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
// parse a file upload
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
if (err)
do-smth; // process error
// Copy file from temporary place
// var fs = require('fs');
// fs.rename(file.path, <targetPath>, function (err) { ... });
// Send result on client
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
});
return;
}
// show a file upload form
res.writeHead(200, {'content-type': 'text/html'});
res.end(
'<form action="/upload" enctype="multipart/form-data" method="post">'+
'<input type="text" name="title"><br>'+
'<input type="file" name="upload" multiple="multiple"><br>'+
'<input type="submit" value="Upload">'+
'</form>'
);
}).listen(8080);
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow