2010-06-03 17 views
14

की तरह एक फ़ाइल के लिए एक रास्ता दिया:
C: \ file.jpg
मैं कैसे जावास्क्रिप्ट में फ़ाइल का आकार मिल सकता है?हो रही फ़ाइल आकार जावास्क्रिप्ट में

+0

http://code.google.com/p/gwtupload/ जांच इस बात।वे किसी भी तरह से प्रगति पट्टी अपलोड करने का प्रबंधन करते हैं – Andrey

+1

क्या आपके पास 'सी:' तक पहुंचने में कोई वेबसर्वर सक्षम है? यदि आपका ओएस 'सी:' पर ​​है, तो मैं इसके खिलाफ सलाह देता हूं, लेकिन पहले चीजें पहले। – vol7ron

उत्तर

25

पर निर्भर करता है जावास्क्रिप्ट का उपयोग करते हुए एक HEAD अनुरोध सामग्री-लंबाई हेडर भेजने के लिए, और पढ़ने के लिए, सक्षम यदि यह एक स्थानीय आवेदन संचालित नहीं है हो सकता है जावास्क्रिप्ट द्वारा पूर्ण पहुंच अनुमतियों के साथ, आप पथ नाम से किसी भी फ़ाइल का आकार नहीं प्राप्त कर सकते हैं। जावास्क्रिप्ट चलाने वाले वेब पेजों के पास सुरक्षा कारणों से स्थानीय फाइल सिस्टम तक पहुंच नहीं है।

आप SWFUpload की तरह एक सुंदर अपमानजनक फ़ाइल अपलोडर उपयोग करें यदि आप एक प्रगति बार दिखाना चाहते हैं कर सकते हैं। एचटीएमएल 5 में भी File API है, लेकिन यह अभी तक व्यापक रूप से समर्थित नहीं है। कोई उपयोगकर्ता किसी input[type=file] तत्व के लिए फ़ाइल का चयन करता है, तो आप files संग्रह से फाइल के बारे में जानकारी प्राप्त कर सकते हैं:

alert(myInp.files[0].size); 
+0

पर यह काउंटर है, मुझे लगता है कि, लेकिन कुछ स्मार्ट वेब एप्लिकेशन अपलोड करते समय प्रगति पट्टी कैसे दिखाते हैं? – Andrey

+0

@Andrey: अन्य वेब अनुप्रयोग जावा या फ्लैश का उपयोग करते हैं। मैंने लोकप्रिय [SWFUpload] (http://www.swfupload.org/) के लिंक के साथ अपना जवाब अपडेट किया। –

+0

@Andrey अन्य स्क्रिप्ट टूल जैसे फ़्लैश, ActiveX, आदि स्थानीय फ़ाइल सिस्टम तक पहुंच सकते हैं। वैकल्पिक रूप से, कुछ सर्वर-साइड तकनीकों का उपयोग फ़ाइल अपलोड प्रगति की निगरानी करने के लिए किया जा सकता है और जब जावास्क्रिप्ट अनुरोध करता है तो उस जानकारी को वापस खिलाएं –

0

आप एक मानक तरीका एक वेब ब्राउज़र का उपयोग करने में जावास्क्रिप्ट के साथ स्थानीय फ़ाइलों का फ़ाइल आकार नहीं मिल सकता है।

लेकिन अगर फ़ाइल एक दूरस्थ मार्ग से पहुंचा जा सकता है, तो आप वेब सर्वर

+0

मुझे ऐसा लगता है, लेकिन कुछ स्मार्ट वेब एप्लिकेशन अपलोड करते समय प्रगति पट्टी कैसे दिखाते हैं? – Andrey

+0

@Andrey फ़्लैश या एक PHP मॉड्यूल का उपयोग कर जो बाइट्स या इसी तरह की गणना कर सकते हैं। – baloo

+0

फ़्लैश ठीक है, लेकिन PHP? – Andrey

0

आप कर सकते हैं जावास्क्रिप्ट में कोई फ़ाइल इनपुट/आउटपुट है के रूप में नहीं। एक ही प्रश्न के लिए here देखें।

0

आप नहीं कर सकते।

जावास्क्रिप्ट सुरक्षा कारणों के लिए स्थानीय कंप्यूटर पर फ़ाइलों तक पहुँच नहीं कर सकते हैं, यहां तक ​​कि उनके आकार की जांच करने के लिए।

एकमात्र चीज जो आप कर सकते हैं वह है file फ़ील्ड को सर्वर-साइड स्क्रिप्ट में फ़ॉर्म सबमिट करने के लिए जावास्क्रिप्ट का उपयोग करें, जो उसके आकार को माप सकता है और इसे वापस कर सकता है।

3

आप जावास्क्रिप्ट के साथ एक उपयोगकर्ता के फाइल सिस्टम पहुँच पाता, तो छवि खराब हो सकता है कि।

लेकिन, आप फाइल सिस्टम ऑब्जेक्ट का उपयोग कर सकते लेकिन यह केवल IE में काम करेगा:

http://bytes.com/topic/javascript/answers/460516-check-file-size-javascript

+0

+1 के नीचे काम नहीं करता है अंतिम उत्तर – Andrey

9
function findSize() { 
    var fileInput = document.getElementById("fUpload"); 
    try{ 
     alert(fileInput.files[0].size); // Size returned in bytes. 
    }catch(e){ 
     var objFSO = new ActiveXObject("Scripting.FileSystemObject"); 
     var e = objFSO.getFile(fileInput.value); 
     var fileSize = e.size; 
     alert(fileSize);  
    } 
} 
+3

में एक अद्भुत समाधान है क्या आप एक स्पष्टीकरण जोड़ सकते हैं? – CraigTeegarden

+0

ओह, मुझे लगता है कि पकड़ने वाले ब्राउज़र के लिए जो एचटीएमएल 5 तरीके का समर्थन नहीं करता – GabrielBB

0

वेब पर पृष्ठों का फ़ाइल आकार पाने के लिए मुझे क्या करना एक जावास्क्रिप्ट बुकमार्कलेट बनाया छल। यह केबी के आकार को अलर्ट करता है। अगर आप फाइलसाइज कॉपी करना चाहते हैं तो अलर्ट को प्रॉम्प्ट पर बदलें।

यहाँ चेतावनी के लिए बुकमार्क का कोड है।

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);alert(c+' kb');">Doc Size</a> 

यहां प्रॉम्प्ट के लिए बुकमार्कलेट कोड है।

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);prompt('Page Size',c+' kb');">Doc Size</a> 

http://bookmarklets.to.g0.to/filesize.php

0

पर कार्य करते हुए देखें इस एक कोशिश करें।

function showFileSize() { 
 
    let file = document.getElementById("file").files[0]; 
 
    if(file) { 
 
    alert(file.size + " in bytes"); 
 
    } else { 
 
    alert("select a file... duh"); 
 
    } 
 
}
<input type="file" id="file"/> 
 
<button onclick="showFileSize()">show file size</button>

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