Birden çok dosyayı okumak için FileReader API kullanıyorum.Javascript FileReader API'sı ile birden çok dosyayı tek tek okumak
<html> <body>
<input type="file" id="filesx" name="filesx[]"
onchange="readmultifiles(this.files)" multiple=""/>
<div id="bag"><ul/></div>
<script>
window.onload = function() {
if (typeof window.FileReader !== 'function') {
alert("The file API isn't supported on this browser yet.");
}
}
function readmultifiles(files) {
var ul = document.querySelector("#bag>ul");
while (ul.hasChildNodes()) {
ul.removeChild(ul.firstChild);
}
function setup_reader(file) {
var name = file.name;
var reader = new FileReader();
reader.onload = function(e) {
var bin = e.target.result; //get file content
// do sth with text
var li = document.createElement("li");
li.innerHTML = name;
ul.appendChild(li);
}
reader.readAsBinaryString(file);
}
for (var i = 0; i < files.length; i++) { setup_reader(files[i]); }
}
</script> </body> </html>
sorun tüm dosyalar aynı anda okunan olmasıdır ve dosyalar çok büyük bir toplam boyutunu (toplam) olduğunda, tarayıcı kilitlenmeleri.
Bellek tüketiminin azalması için bir dosyayı diğerinden okumak istiyorum.
Bu mümkün mü?
Neden yeni [FileReader] (https oluşturmaz:
yerine elle her dosya üzerinde yineleme
, buObject.keys(files)
in ES kullanmak temizleyici & çok daha basittir // geliştiricisi Her bir okuma için .mozilla.org/tr/docs/Web/API/FileReader) FileReader nesnesinin, "0" (boş) ile "1" (yükleme) ve ardından "2" (bitene kadar) durumu değiştirildikten sonra yeniden kullanılması gerekmediğine inanıyorum. Bu size ciddi tarayıcı hataları verebilir. – Pacerier