2013-04-04 5 views
6

मैं एक से अधिक फ़ाइल इनपुट पर पाश इस की जरूरत है:jQuery पाश

var reader = new FileReader(); 

    reader.onload = function (e) { 
     $('#pprev_0') 
     .attr('src', e.target.result); 
    }; 

    reader.readAsDataURL(input.files[0]); 

मैं इस कोशिश की, लेकिन यह काम नहीं करता:

var fileCount = 0; 
$("input[name='files[]']").each(function() { 

    var reader = new FileReader(); 

    reader.onload = function (e) { 
     $('#pprev_'+fileCount) 
     .attr('src', e.target.result) 
     .css("display","block"); 
    }; 

    reader.readAsDataURL(input.files[fileCount]); 

    fileCount++; 
}); 

fileCount पर चेतावनी() आउटपुट एकाधिक फ़ाइल चयन पर एक बार 0 है। कोई और अलर्ट नहीं। यदि मैं फ़ाइल के बजाय संख्याओं को संख्या में लेता हूं, तो यह स्थिति में काम करता है। r.g. input.files [2] ...

कोई विचार?

उत्तर

7

जब आप ऐसा करते हैं: $("input[name='files[]']").each(function() { आप वास्तव में चयनकर्ता से मेल खाने वाले किसी तत्व को प्राप्त कर रहे हैं। इस मामले में, तो आप इस पेज काफी आप वास्तव में क्या करना चाहते हैं कोड है अपने एकल मल्टी फ़ाइल इनपुट मिल (जिसके कारण आप केवल 1 अलर्ट देखें। क्या आप क्या करना चाहते फ़ाइलों पर पुनरावृति है।

। मैं सुझाव है कि आप इसे बाहर की जाँच करें:

http://www.html5rocks.com/en/tutorials/file/dndfiles/

अपनी स्थिति में इसे लागू करने के लिए आपको कुछ इस तरह करना होगा: इस जोड़कर

var files = $('#files')[0].files; //where files would be the id of your multi file input 
//or use document.getElementById('files').files; 

for (var i = 0, f; f = files[i]; i++) { 

    var reader = new FileReader(); 

    reader.onload = function (e) { 
     $('#pprev_'+fileCount) 
     .attr('src', e.target.result) 
     .css("display","block"); 
    }; 

    reader.readAsDataURL(f); 

} 
+0

, यह ठीक काम करता है धन्यवाद वर fileInput = दस्तावेज़!। getElementById ("fileInput"); var फ़ाइलें = fileInput.files; \t var फ़ाइल; – Tom