2012-08-03 6 views
6

अब तक लगभग एक महीने के लिए एक्सप्रेसज के साथ काम करना मैंने फ़ाइल अपलोड की समस्या से ठोकर खाई है। परामर्श गूगल & विभिन्न ब्लॉगों के बावजूद मैं निम्नलिखित तीन सवालों का उत्तर ढूंढना विफल रहे हैं:एक्सप्रेसज फ़ाइल अपलोड करें, जांचें कि वास्तव में एक फाइल भेजी गई थी, अधिकतम फाइलसाइज निर्दिष्ट करें और उसका नाम

  1. मेक:

    मुझे क्या करना है/bodyParser के लिए क्या सेटिंग्स के क्रम में मैं चुननी पड़ती है निश्चित रूप से वास्तव में एक फ़ाइल अपलोड की गई थी (वर्तमान में, फ़ाइल को चुनने के बिना फ़ॉर्म सबमिट करते समय एक खाली फ़ाइल बनाई जाती है)।

  2. मैं मैक्सीम आकार के लिए एक मान निर्दिष्ट कर सकता हूं जहां फ़ाइल की अनुमति है?

  3. मैं फ़ाइल का नाम बदलने कैसे छोड़ सकता हूं?

वर्तमान में मैं अपने एक्सप्रेस (v 3.0.0।) निम्न विकल्प के साथ अनुप्रयोग में bodyParser शामिल कर रहा हूँ:

{keepExtensions: true, uploadDir: __dirname + '/public/uploads'} 

उत्तर

4

मैं हाल ही में एक ऐसी ही समस्या हुई थी। प्रश्न # 2 के लिए , जाँच http://www.senchalabs.org/connect/middleware-limit.html

app.use(express.limit('4M')); // in your app.configure()

app.post('/upload', function(req, res) { 
    var fs = require('fs'), 
     file = req.files.myfile; //your file field; 


    if(file.size === 0) { // question #1 
     fs.unlinkSync(file.path); 
     res.redirect('/error?'); 
    } else { //question #3 
     var fn = file.path.split('/'); 
     fs.rename(file.path, file.path.replace(fn[fn.length-1], file.name)); 
     res.redirect('/success?'); 
    } 
}); 
+1

मुझे इस पर बाहर मदद के लिए धन्यवाद एक बहुत - यह बल्कि अजीब लगता है कि सामान उस तरह सीधे से निपटने के लिए आप सक्षम होगा की पेशकश की कोई पैरामीटर देखते हैं कि है। –

1

आपकी चिंता के बारे में

सुनिश्चित करें कि वास्तव में एक फ़ाइल अपलोड की गई (वर्तमान में, जब एक फ़ाइल एक को चुनने के बिना पर्चे को जमा था खाली फ़ाइल बनाई जाती है)।

लंबी खोज के बाद मैं एक महान समाधान पाया

सबसे पहले आप स्थापित करने की आवश्यकता node-formidable

तो पुस्तकालय सहित के बाद, फ़ाइल पहले स्थान पर

var form = new formidable.IncomingForm(); 

form.parse(req, function(err, fields, files) { 
    if (Object.keys(files).length !== 0) { 
    console.log("File is exist") 
    } else { 
    console.log("File is not exist") 
    } 
}); 
में अपलोड करता है, तो जाँच करने के लिए

और आकार के बारे में आप इसे देख सकते हैं।

form.maxFieldsSize = 2 * 1024 * 1024; 

सर्वश्रेष्ठ संबंध।

अब्दुलअजीज नूर

संबंधित मुद्दे