Get filename after filereader asynchronously loaded a file

前端 未结 2 1961
一向
一向 2020-12-14 00:34

I am loading several files in a directory in order to parse some data from them. This works great so far, but I would like to know which file I am looking at. So I need the

相关标签:
2条回答
  • 2020-12-14 01:04

    Create a closure around the File to capture the current file. Then you can get the filename.

    An example: http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-reading-files

    Closure to capture the file information.

    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]);
      }
    }
    

    And the called function gets an additional argument

    function createListItem(evt, file) {
      console.log(evt.target.result)
      console.log(file.name);
    }
    
    0 讨论(0)
  • 2020-12-14 01:04

    The following source code add an attribute to the file reader

        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]);
        }
    
    0 讨论(0)
提交回复
热议问题