2014-09-17 11 views
6

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

js कोड:

app.directive('checkFileSize',function(){ 
    return{ 
     require: 'ngModel', 
     link: function(scope, elem, attr, ctrl) { 
      // add a parser that will process each time the value is 
      // parsed into the model when the user updates it. 
      ctrl.$parsers.unshift(function (value) { 
       //i want to do something like this 
       var fileSize= // get file size here 
       if(fileSize>threshold){ 
        ctrl.$setValidity('checkFileSize',false);  
       } 
       // return the value to the model, 

       return someValue; 
      }); 
     } 
    } 
}); 
+0

हाँ, यह संभव है , लेकिन एंग के लिए विशिष्ट नहीं है ular -http: //stackoverflow.com/questions/3717793/javascript-file-upload-size- प्रमाणीकरण। आप आसानी से इसे कोणीय सत्यापन निर्देश – pixelbits

+0

ए I में शामिल कर सकते हैं: क्या आप अपने लिए काम करने वाले समाधान को समेकित और प्रदान कर सकते हैं। धन्यवाद ! – PavanSandeep

उत्तर

7

एक निर्देश से फ़ाइल आकार की जांच कैसे करें:

app.directive('checkFileSize',function(){ 
    return{ 
     link: function(scope, elem, attr, ctrl) { 
      $(elem).bind('change', function() { 
       alert('File size:' + this.files[0].size); 
      }); 
     } 
    } 
}); 

गैर jQuery संस्करण:

app.directive('checkFileSize', function() { 
    return { 
    link: function(scope, elem, attr, ctrl) { 
     function bindEvent(element, type, handler) { 
     if (element.addEventListener) { 
      element.addEventListener(type, handler, false); 
     } else { 
      element.attachEvent('on' + type, handler); 
     } 
     } 

     bindEvent(elem[0], 'change', function() { 
     alert('File size:' + this.files[0].size); 
     }); 
    } 
    } 
}); 

http://plnkr.co/edit/ybuk6K6YNTIwnLTK5I6Z?p=preview

+0

यह काम करता है। लेकिन ऐसा लगता है कि यह jquery का उपयोग कर रहा है। क्या आपके पास कोई समाधान है जो jquery का उपयोग नहीं करता है? –

+0

@ एआई मैंने गैर jquery संस्करण –

+0

भयानक उपयोग करने के लिए plunkr अद्यतन किया! यह दृष्टिकोण अब मेरी समस्या हल करता है। –

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

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