यार तुम गलत रास्ते पर चल रहे हो। मैंने आपके पिछले प्रश्न अनुरोध में पहले ही स्पष्ट कर दिया है कि Multer का उपयोग फ़ाइल डिस्क सिस्टम में फ़ाइलों को सहेजने के लिए किया जाता है न कि सीधे आपके डेटाबेस में। उसके लिए आपको GRIDFS का उपयोग करना चाहिए।
आपके वर्तमान प्रश्न पर आते हैं।
app.post('/Upload', upload.single('solution') ,function (req, res, next) {
console.log(req.file);
});
यहां upload.single('solution')
- एक फ़ंक्शन को कॉल करें अपलोड करें और पास की गई फ़ाइल का नाम समाधान है लेकिन यह स्पष्ट है कि यह यहां उपलब्ध नहीं है।
इस प्रकार के प्रारूप का उपयोग करें - मुल्टर का दस्तावेज़ीकरण
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage })
वहां के स्टोरेज पार्ट का उपयोग उस स्थान को पथ देने के लिए किया जाता है जहां आपकी फ़ाइल को सहेजा जाना चाहिए और फ़ाइल नाम अनुभाग का उपयोग उस फ़ाइल नाम में परिवर्तन करने के लिए किया जाता है जिसे आप रखना चाहते हैं।
कृपया दस्तावेज़ीकरण पढ़ें क्योंकि इससे मदद मिलेगी। जब हम तीसरे पक्ष के मॉड्यूल का उपयोग करते हैं तो हमें उनके द्वारा पहले ही दी गई जानकारी को स्वीकार करना चाहिए ताकि हम उनके काम का आसानी से उपयोग कर सकें।
मुझे आपके लिए इसे आसान बनाने दें। यहां तैयार कोड है जो काम करता है।
एनजी-फ़ाइल अपलोड के माध्यम से फ़ाइल अपलोड करते समय मल्टर अजीब त्रुटि फेंक रहा है
जाओ उस धागे की जाँच करें। सवाल मेरे द्वारा उठाया गया था - समस्या यह थी कि मैं सरणी प्रारूप में फाइलें भेज रहा था, जैसे कि एक साथ कई फाइलों में। यदि आप ऐसा नहीं कर रहे हैं तो एकल अपलोड डेमो उदाहरण का उपयोग करने के लिए एनजी-फाइल-अपलोड सेगमेंट को बदलें और सर्वर साइड नोडज कोड को .array
बदलें। .single
. के साथ और चीजें वैसे ही काम करेंगी जैसे आप चाहते हैं कि वे काम करें - यह देखते हुए कि आप फाइलों को स्टोर करने के लिए फाइल डिस्क सिस्टम का उपयोग करना चाहते हैं।
मैं दोहराता हूं कि यह विधि फ़ाइल को सीधे मोंगोडब में सहेजने में आपकी सहायता नहीं करेगी।
मुझे बताएं कि क्या आपको किसी और स्पष्टीकरण की आवश्यकता है।