![](/img/trans.png)
[英]HTML5 File API with Multiple Files in sequence instead of all at once
[英]Reading multiple files in a loop using HTML5 File API
我使用HTML5文件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_Content1'和'File_Content2'。
任何人都可以解決這個問題嗎? 謝謝。
你有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]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.