वास्तव में आपको क्या चाहिए :) आप कॉलबैक संस्करण या प्रोमिस संस्करण चुन सकते हैं। ध्यान दें कि वादे IE में केवल वादा पॉलीफिल लिब के साथ काम करेंगे। आप इस कोड को एक बार एक पृष्ठ पर रख सकते हैं, और यह फ़ंक्शन आपकी सभी फाइलों में दिखाई देगा।
लोडिंग घटना को निकाल दिया जाता है जब प्रगति एक संसाधन के लोडिंग पर रोक दी जाती है (जैसे "त्रुटि", "गर्भपात", या "लोड" के बाद भेज दिया गया है)
कॉलबैक संस्करण
File.prototype.convertToBase64 = function(callback){
var reader = new FileReader();
reader.onloadend = function (e) {
callback(e.target.result, e.target.error);
};
reader.readAsDataURL(this);
};
$("#asd").on('change',function(){
var selectedFile = this.files[0];
selectedFile.convertToBase64(function(base64){
alert(base64);
})
});
वादा संस्करण
File.prototype.convertToBase64 = function(){
return new Promise(function(resolve, reject) {
var reader = new FileReader();
reader.onloadend = function (e) {
resolve({
fileName: this.name,
result: e.target.result,
error: e.target.error
});
};
reader.readAsDataURL(this);
}.bind(this));
};
FileList.prototype.convertAllToBase64 = function(regexp){
regexp = regexp || /.*/;
var filesArray = Array.prototype.slice.call(this);
var base64PromisesArray = filesArray.
filter(function(file){
return (regexp).test(file.name)
}).map(function(file){
return file.convertToBase64();
});
return Promise.all(base64PromisesArray);
};
$("#asd").on('change',function(){
var selectedFile = this.files[0];
selectedFile.convertToBase64().
then(function(obj){
alert(obj.result);
});
});
this.files.convertAllToBase64(/\.(png|jpeg|jpg|gif)$/i).then(function(objArray){
objArray.forEach(function(obj, i){
console.log("result[" + obj.fileName + "][" + i + "] = " + obj.result);
});
});
})
एचटीएमएल
<input type="file" id="asd" multiple/>