2011-09-02 29 views
11

में अपलोड करने से पहले फाइलसाइज की जांच करने के लिए जावास्क्रिप्ट को सर्वर पर वास्तव में अपलोड करने से पहले फ़ाइल के आकार (क्लाइंट साइड पर) की जांच करने के लिए जावास्क्रिप्ट का उपयोग करना संभव है?जावास्क्रिप्ट इंटरनेट एक्सप्लोरर

एप्लिकेशन EXTJS और जावा पर बनाया गया है और विंडोज एक्सपी मशीनों पर इंटरनेट एक्सप्लोरर 7 द्वारा उपयोग के लिए प्रतिबंधित है। ActiveX का कोई उपयोग करने की अनुमति नहीं है।

वर्कफ़्लो इस प्रकार है: उपयोगकर्ता अपलोड करने के लिए एक फ़ाइल का चयन करता है। प्रमाणीकरण तुरंत फ़ाइल प्रकार और फाइलसाइज की जांच करने के लिए kicks। यदि फाइलसाइज सीमा से अधिक है, तो GUI त्रुटि के साथ संकेत देगा। यदि फ़ाइलसाइज सीमा के भीतर है, तो पूर्ण फ़ाइलपैथ को सर्वर अंत (जावा सर्वलेट) पर अपलोड किया जाएगा।

क्या जावास्क्रिप्ट के साथ फ़ाइल फ़ाइल की जांच और पूर्ण फ़ाइल पथ को पढ़ने के लिए संभव है?

उत्तर

0

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

इसे सक्रिय रूप से अस्वीकार कर दिया गया है और इसे हमले के रूप में देखा जा सकता है।

Using jQuery, Restricting File Size Before Uploading

+0

कैसे किसी अन्य विधि के बारे में। मान लें कि मेरे पास इनपुट फॉर्म है, पहले पूर्ण फ़ाइलपैथ ढूंढें और फिर इसे फाइलसाइज चेकिंग कोड पर फ़ीड करें। मैंने uploadify, swfupload, fancifulupload और yuiuploader को देखा। मैं उन में पूर्ण फ़ाइलपाथ "फ़ीड" करने में सक्षम नहीं लग सकता। – user924590

3

वर्तमान में कोई रास्ता portably वेब ब्राउज़र से एक अपलोड की गई फ़ाइल का आकार जाँच करने के लिए है। HTML5 File API यह संभव बनाता है, लेकिन यह MSIE7 में उपलब्ध नहीं है - यह वर्तमान में MSIE10 के लिए ट्रैक पर है।

जानबूझकर अपलोड की गई फ़ाइल का पूरा पथ निर्धारित करने का कोई तरीका नहीं है, क्योंकि इसमें अंतिम उपयोगकर्ता के नाम की तरह संवेदनशील जानकारी शामिल हो सकती है।

+0

मैं फ़ाइल को प्री-अपलोड करने की तलाश में हूं। उदाहरण के लिए जब मैंने फ़ाइल का चयन किया है और फिर फ़ाइल अपलोड और पूर्ण फ़ाइलपैथ प्राप्त करने के लिए वास्तविक अपलोड के लिए प्राथमिक है। – user924590

+1

जैसा कि मैंने देखा है, वर्तमान में फ़ाइल आकार का पता लगाने का कोई तरीका नहीं है, और स्थानीय पथ निर्धारित करने के लिए कोई भी तरीका (और संभवतः कभी नहीं होगा) है। – duskwuff

4

ActiveX ऑब्जेक्ट्स के साथ यह संभव है।

<html> 
<head> 
<script> 
function getSize() 
{ 
    var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var filepath = document.upload.file.value; 
    var thefile = myFSO.getFile(filepath); 
    var size = thefile.size; 
    alert(size + " bytes"); 
} 
</script> 
</head> 
<body> 
<form name="upload"> 
<input type="file" name="file"> 
<input type="button" value="Size?" onClick="getSize();"> 
</form> 
</body> 
</html> 
+0

कोड के लिए धन्यवाद। जैसा कि मैंने अपनी पहली पोस्ट में उल्लेख किया है, ActiveX तरीके से नहीं जा रहा है। :) – user924590

-3

कोड के नीचे करने का प्रयास करें,

<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script> 
<script type="text/javascript"> 
$(function() { 
$("document").ready(function(){ 
     $("#myFile1").change(function() { 

     var f1=document.getElementById("myFile1").value; 
     if((f.size||f.fileSize)==09765625) 
     { 
     alert("file size is less than 1mb"); 
     } 
     else 
     { 
     alert("file size should not exceed more than 1mb"); 
       $(this).val($.data(this, 'f')); 
     return false; 
     } 

      }); 
}); 
}) 
</script> 
</head> 
<body> 

<input type='file' name="file" id="myFile1" /> 

</body> 
</html> 
+0

यह कोड भ्रामक है – nicoabie

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