दिलचस्प पोस्ट
बुलियन ऑपरेटर में अंतर: & बनाम && और | बनाम || दृश्य स्टूडियो 2010 अचानक नामस्थान देख नहीं सकता है? सी # .NET 3.5 में प्रगति पट्टी का रंग कैसे बदल सकता है? अगर फ़ील्ड MySQL में शून्य है तो 0 लौटें टीएसक्यूएल का उपयोग कर डेटाबेस में सभी तालिकाओं की सूची कैसे प्राप्त करूं? एक inlined समारोह में स्थिर चर रैखिक प्रतिगमन और समूह आर द्वारा आर XCode 6 में उद्देश्य-सी हेडर पर स्विफ्ट नहीं बनाया गया कैसे .net कोड से संग्रहित प्रक्रिया के लिए तालिका मान पैरामीटर को पारित करने के लिए JQuery के अजाक्स अनुरोध प्रत्येक एक्स मिनट पर कॉल करें सरणी तत्वों को क्रमबद्ध करें (संख्याओं वाला स्ट्रिंग), प्राकृतिक सॉर्ट करें एक UIImage का आकार बदलने का सबसे सरल तरीका है? ट्विटर बूटस्ट्रैप मॉडल बंद करने के लिए एक फ़ंक्शन बाँध लें मैं एक अजाक्स क्वेरी पोस्ट त्रुटि कैसे पकड़ सकता हूं? एक स्ट्रिंग को एक टेम्पलेट स्ट्रिंग में कनवर्ट करें

अपलोड करने से पहले फ़ाइल आकार प्राप्त करें

क्या इनपुट फ़ाइल के बदलने की घटना में एजेएक्स / पीएचपी का उपयोग कर फाइल अपलोड करने से पहले फ़ाइल का आकार जानने का कोई तरीका है?

वेब के समाधान से एकत्रित समाधान "अपलोड करने से पहले फ़ाइल आकार प्राप्त करें"

HTML के लिए bellow

<input type="file" id="myFile" /> 

निम्न प्रयास करें:

 //binds to onchange event of your input field $('#myFile').bind('change', function() { //this.files[0].size gets the size of your file. alert(this.files[0].size); }); 

निम्नलिखित धागा देखें:

कैसे jQuery के साथ फ़ाइल इनपुट आकार की जांच करने के लिए?

 <script type="text/javascript"> function AlertFilesize(){ if(window.ActiveXObject){ var fso = new ActiveXObject("Scripting.FileSystemObject"); var filepath = document.getElementById('fileInput').value; var thefile = fso.getFile(filepath); var sizeinbytes = thefile.size; }else{ var sizeinbytes = document.getElementById('fileInput').files[0].size; } var fSExt = new Array('Bytes', 'KB', 'MB', 'GB'); fSize = sizeinbytes; i=0;while(fSize>900){fSize/=1024;i++;} alert((Math.round(fSize*100)/100)+' '+fSExt[i]); } </script> <input id="fileInput" type="file" onchange="AlertFilesize();" /> 

IE और एफएफ पर कार्य करें

अपलोड करने से पहले फ़ाइल के आकार को प्राप्त करने का यह एक सरल उदाहरण है जब भी सामग्री को जोड़ा या बदला जाता है, तो यह पता लगाने के लिए jQuery का उपयोग कर रहा है, लेकिन आप अभी भी jQuery का उपयोग किए बिना files[0].size प्राप्त कर सकते हैं।

 $(document).ready(function() { $('#openFile').on('change', function(evt) { console.log(this.files[0].size); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action="upload.php" enctype="multipart/form-data" method="POST" id="uploadform"> <input id="openFile" name="img" type="file" /> </form> 

मुझे एक ही समस्या थी और ऐसा लगता है कि हमने सही समाधान नहीं किया है आशा है कि यह अन्य लोगों की मदद कर सकता है

आखिरकार समय तलाशने के बाद, मुझे अंत में जवाब मिला। JQuery के साथ फ़ाइल संलग्न करने के लिए यह मेरा कोड है:

 var attach_id = "id_of_attachment_file"; var size = $('#'+attach_id)[0].files[0].size; alert(size); 

फ़ाइल आकार प्राप्त करने के लिए यह सिर्फ उदाहरण कोड है यदि आप अन्य सामान चाहते हैं, अपनी आवश्यकताओं को पूरा करने के लिए कोड को बदलने के लिए स्वतंत्र महसूस करें

सभी ब्राउज़रों पर काम करने का सर्वोत्तम समाधान;)

 function GetFileSize(fileid) { try { var fileSize = 0; //for IE if(checkIE()) {//we could use this $.browser.msie but since it's depracted we'll use this function //before making an object of ActiveXObject, //please make sure ActiveX is enabled in your IE browser var objFSO = new ActiveXObject("Scripting.FileSystemObject"); var filePath = $("#" + fileid)[0].value; var objFile = objFSO.getFile(filePath); var fileSize = objFile.size; //size in kb fileSize = fileSize / 1048576; //size in mb } //for FF, Safari, Opeara and Others else { fileSize = $("#" + fileid)[0].files[0].size //size in kb fileSize = fileSize / 1048576; //size in mb } alert("Uploaded File Size is" + fileSize + "MB"); } catch (e) { alert("Error is :" + e); } } 

http://www.dotnet-tricks.com/Tutorial/jquery/HHLN180712-Get-file-size-fore-upload-using-jquery.html से

अद्यतन: हम इस फ़ंक्शन का उपयोग करके यह जांचने के लिए करेंगे कि यह IE ब्राउज़र है या नहीं

 function checkIE() { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)){ // If Internet Explorer, return version number alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)))); } else { // If another browser, return 0 alert('otherbrowser'); } return false; } 

HTML5 समर्थन वाले ब्राउज़र में इनपुट प्रकार के लिए फाइल गुण हैं। यह निश्चित रूप से पुराने IE संस्करणों में काम नहीं करेगा।

 var inpFiles = document.getElementById('#fileID'); for (var i = 0; i < inpFiles.files.length; ++i) { var size = inpFiles.files.item(i).size; alert("File Size : " + size); } 

आपको फाईलिस प्राप्त करने के लिए एजेक्स हेड अनुरोध करना होगा। jquery के साथ ऐसा कुछ है

  var req = $.ajax({ type: "HEAD", url: yoururl, success: function () { alert("Size is " + request.getResponseHeader("Content-Length")); } }); 

यूसेफ के समाधान ने सबसे अच्छा काम किया है, लेकिन क्योंकि $ .browser को jQuery 1.91 में नापसंद किया गया था, को नेविगेटर का उपयोग करने के लिए बदलना था। userAgent:

 function IsFileSizeOk(fileid) { try { var fileSize = 0; //for IE if (navigator.userAgent.match(/msie/i)) { //before making an object of ActiveXObject, //please make sure ActiveX is enabled in your IE browser var objFSO = new ActiveXObject("Scripting.FileSystemObject"); var filePath = $("#" + fileid)[0].value; var objFile = objFSO.getFile(filePath); var fileSize = objFile.size; //size in kb fileSize = fileSize / 1048576; //size in mb } //for FF, Safari, Opeara and Others else { fileSize = $("#" + fileid)[0].files[0].size //size in kb fileSize = fileSize / 1048576; //size in mb } return (fileSize < 2.0); } catch (e) { alert("Error is :" + e); } } 

आप PHP filesize फ़ंक्शन का उपयोग कर सकते हैं। एजेक्स का उपयोग करते हुए अपलोड के दौरान, कृपया phyp स्क्रिप्ट के लिए एक एजेक्स अनुरोध अनुरोध करके फाइलसिसेज की जांच करें, जो फाइलसिसेज की जांच करता है और मान वापस लौटाता है।

आप HTML5 फ़ाइल एपीआई का उपयोग कर सकते हैं: http://www.html5rocks.com/en/tutorials/file/dndfiles/

हालांकि, पुराने ब्राउज़रों के लिए आपको हमेशा PHP (या अन्य बैकएंड भाषा का उपयोग करने के लिए) एक फ़ॉलबैक होना चाहिए।

निजी तौर पर, मैं कहूंगा कि वेब वर्ल्ड का जवाब आज सबसे अच्छा है, HTML मानकों के अनुसार। यदि आपको IE <10 को समर्थन देना है, तो आपको कुछ प्रकार के ActiveX का उपयोग करने की आवश्यकता होगी मैं ऐसी सिफारिशों से बचना चाहूंगा, जो स्क्रीप्टिंग के विरुद्ध कोडिंग को शामिल करता है। फाइल सिस्टम ऑब्जेक्ट, या सीधे ActiveX को सक्रिय कर रहा है

इस मामले में, मुझे 3 पार्टी जेएस पुस्तकालयों जैसे कि प्लूपलोड का उपयोग करने में सफलता मिली है जिसे एचटीएमएलएपीआईएस या फ्लैश / सिल्वरलाइट कंट्रोल का बैकफिल ब्राउज़रों पर उपयोग करने के लिए विन्यस्त किया जा सकता है, जो इन समर्थनों का समर्थन नहीं करते हैं प्लूपलोड में फ़ाइल आकार की जाँच करने के लिए क्लाइंट साइड API है जो IE <10 में काम करता है

कृपया ActiveX उपयोग न करें क्योंकि संभावना है कि यह इंटरनेट एक्सप्लोरर में एक डरावनी चेतावनी संदेश प्रदर्शित करेगा और अपने उपयोगकर्ताओं को डरा देगा।

ActiveX चेतावनी

अगर कोई इस चेक को लागू करना चाहता है, तो उन्हें केवल आधुनिक ब्राउज़रों में उपलब्ध फाइललिस्ट ऑब्जेक्ट पर भरोसा करना चाहिए और केवल पुराने ब्राउज़र ( प्रगतिशील वृद्धि ) के लिए सर्वर साइड चेक पर भरोसा करना चाहिए।

 function getFileSize(fileInputElement){ if (!fileInputElement.value || typeof fileInputElement.files === 'undefined' || typeof fileInputElement.files[0] === 'undefined' || typeof fileInputElement.files[0].size !== 'number' ) { // File size is undefined. return undefined; } return fileInputElement.files[0].size; }