我在一个目录中加载了几个文件,以便解析其中的一些数据。到目前为止,这个方法工作得很好,但我想知道我正在查看的是哪个文件。所以我需要文件在加载后的名称。有人能帮上忙吗?
//获取目录中的所有文件
function updateData(){
var dirReader = approot.createReader();
var fail =failCB('Error - Directory for parsing failed to open'); // logs fail...
dirReader.readEntries(parseData,fail);
}
//加载每个文件
function parseData(entries){
var i;
for (i=0; i<entries.length; i++) {
var reader = new FileReader();
reader.onloadend = createListItem;
reader.readAsText(entries[i]);
}
}
//在这里我想知道它的名字!
function createListItem(evt){
// it gives me all the loaded data. But based on which file it was, I would like to handle it!
console.log(evt.target.result)
// lets say something like this
$('#content').find( file.name ).append(evt.target.result);
}
}
发布于 2012-09-23 04:30:43
在File
周围创建一个闭包来捕获当前文件。然后你就可以得到文件名了。
一个例子:http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-reading-files
闭包来捕获文件信息。
function parseData(entries){
for (var i=0; i<entries.length; i++) {
reader.onloadend = (function(file) {
return function(evt) {
createListItem(evt, file)
};
})(entries[i]);
reader.readAsText(entries[i]);
}
}
并且被调用的函数会得到一个额外的参数
function createListItem(evt, file) {
console.log(evt.target.result)
console.log(file.name);
}
发布于 2015-11-04 19:01:33
下面的源代码向文件读取器添加一个属性
for(i=0; i < files.length; i++)
{
var fileReader = new FileReader();
fileReader.onload = function(file)
{
// DO what you need here
// file name = file.target.fileName
} // end of reader load
fileReader.fileName = files[i].name;
fileReader.readAsBinaryString(files[i]);
}
https://stackoverflow.com/questions/12546775
复制相似问题