使用HTML5 File API在循环中读取多个文件
Reading multiple files in a loop using HTML5 File API
我正在使用HTML5 File API读取二进制文件。用户可以选择多个文件,然后单击按钮将它们复制到JavaScript对象中。我的代码列在这里:
<script>
var data = new Object;
function ReadFiles()
{
var files = document.getElementById('file').files;
for (var i = 0; i < files.length; i++) {
var reader = new FileReader();
reader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) {
data["File_Content" + i] = btoa(evt.target.result);
}
};
reader.readAsBinaryString(files[i]);
}
}
</script>
<input type="file" id="file" name="file[]" multiple />
<button onclick="ReadFiles();">Read Files</button>
如果用户放入三个文件,则只有一个无效的属性"File_Content3"将添加到具有值的"data"对象中;未创建其他三个有效属性"File_Content0"、"File_Coontent1"answers"File_Connent2"。
有人能解决这个问题吗?谢谢
如果i
变量有clouse问题,我只需要使用另一个变量
var j = 0, k = files.length;
for (var i = 0; i < k; i++) {
var reader = new FileReader();
reader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) {
data["File_Content" + j] = btoa(evt.target.result);
j++;
if (j == k){
alert('All files read');
}
}
};
reader.readAsBinaryString(files[i]);
}
相关文章:
- 使用JS/NodeJS测试并读取文件中的变量
- 当读取文件时,浏览器打开良好,但它是空白浏览器
- 当尝试使用ajax读取文件时,变量返回undefined
- 用一些像jsBin/jsFiddle/codePen这样的工具读取文件
- 在Windows Metro风格的Javascript应用程序中读取文件内容
- 咕噜声.js无法读取文件(错误代码:EISDIR)
- 如何从文件夹中读取文件
- Javascript - 如何读取文件
- 如何从 Duktape 中运行的 JavaScript 代码中读取文件
- 当客户端是服务器时,使用 client-JS 读取文件结构
- 如何从chrome扩展名读取文件
- 为什么“;readFile”;使用比读取文件更多的内存's的内容长度
- 在html中读取文件
- 使用javascript读取文件
- 节点尝试在同步写入完成之前读取文件
- 无法通过FileReader读取文件
- 从php中的本地磁盘读取文件
- 使用Javascript读取文件
- 是否可以使用 javascript 从目录中读取文件
- 通过网络浏览器从 URL javascript 读取文件