首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Javascript FileReader API一次读取多个文件

使用Javascript FileReader API一次读取多个文件
EN

Stack Overflow用户
提问于 2012-12-20 23:07:34
回答 9查看 43K关注 0票数 26

我正在使用FileReader API读取多个文件。

代码语言:javascript
复制
<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>

问题是所有文件都是同时读取的,当文件的总大小(sum)非常大时,浏览器就会崩溃。

我想一个接一个地读取文件,这样就减少了内存消耗。

这个是可能的吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13975031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档