यह पूरी तरह से संभव है। जावास्क्रिप्ट का प्रयोग करें।
मैं इनपुट तत्व का चयन करने के लिए jQuery का उपयोग करता हूं। मैंने इसे एक बदलाव कार्यक्रम के साथ स्थापित किया है।
$("#aFile_upload").on("change", function (e) {
var count=1;
var files = e.currentTarget.files; // puts all files into an array
// call them as such; files[0].size will get you the file size of the 0th file
for (var x in files) {
var filesize = ((files[x].size/1024)/1024).toFixed(4); // MB
if (files[x].name != "item" && typeof files[x].name != "undefined" && filesize <= 10) {
if (count > 1) {
approvedHTML += ", "+files[x].name;
}
else {
approvedHTML += files[x].name;
}
count++;
}
}
$("#approvedFiles").val(approvedHTML);
});
उपरोक्त कोड सबमिट करने से पहले सबमिट किए गए सभी फ़ाइल नामों को सहेजता है, जो सबमिट करने से पहले मुझे प्रस्तुत करने के योग्य हैं। मैं jQuery का उपयोग करके एक इनपुट तत्व के वैल में "अनुमोदित" फ़ाइलों को जोड़ता हूं, इसलिए सबमिट किया गया एक फॉर्म उन फ़ाइलों के नाम भेजेगा जिन्हें मैं सहेजना चाहता हूं। सभी फाइलें जमा की जाएंगी, हालांकि, अब सर्वर की तरफ हमें इन्हें फ़िल्टर करना होगा। मैंने अभी तक इसके लिए कोई कोड नहीं लिखा है, लेकिन अपनी कल्पना का उपयोग करें। मुझे लगता है कि कोई इसे लूप के लिए पूरा कर सकता है और इनपुट फ़ील्ड से भेजे गए नामों से मेल खाता है और उन्हें $ _FILES (PHP Superglobal, माफ करना, मुझे रूबी फ़ाइल वैरिएबल नहीं पता) चर से मिलान कर सकते हैं।
मेरा मुद्दा यह है कि आप जमा करने से पहले फ़ाइलों के लिए चेक कर सकते हैं। मैं ऐसा करता हूं और फिर फॉर्म को सबमिट करने से पहले इसे उपयोगकर्ता को आउटपुट करता हूं, ताकि वे यह जान सकें कि वे मेरी साइट पर क्या अपलोड कर रहे हैं। जो कुछ भी मानदंडों को पूरा नहीं करता है वह उपयोगकर्ता को वापस प्रदर्शित नहीं होता है और इसलिए उन्हें पता होना चाहिए कि फाइलें बहुत बड़ी नहीं हैं। यह सभी ब्राउज़रों पर काम करना चाहिए क्योंकि मैं फॉर्मडाटा ऑब्जेक्ट का उपयोग नहीं कर रहा हूं।
स्रोत
2013-06-18 15:46:41
यह संभव है। कृपया [यह] देखें (http://stackoverflow.com/questions/3717793/javascript-file-upload-size- validation) प्रश्न। – sandSK