Skip to content

jonathanlurie/filepuller

Repository files navigation

filepuller

Read a file using a single unique function no matter that they come from a file dialog, a URL, that they are gzipped of not.

See the DEMO in examples/browser.html

Example 1: read a JSON file over HTTP request

// whether or not you expect this file to contain text of compressed text
let readAsText = true

// using FilePuller with distant files JSON file
filepuller.read('data/AA0250.json', readAsText, function(err, data){
  if (err) {
    console.warn(err)
    return
  }

  console.log("This is the content of the JSON file:");
  console.log(JSON.parse(data))
})

Example 2: read a gzipped file over HTTP request

// whether or not you expect this file to contain text of compressed text
let readAsText = true

// using FilePuller with distant files JSON file
filepuller.read('data/AA0250.json.gz', readAsText, function(err, data){
  if (err) {
    console.warn(err)
    return
  }

  console.log("This is the content of the JSON file:");
  console.log(JSON.parse(data))
})

Example 3: read a file (whether gzipped or not) using a file dialog Say you have a declared a file dialog button in your page

<input type="file" id="fileInput" multiple>

Then, the on change event will open it.

let fileInput = document.getElementById('fileInput');

// whether or not you expect this file to contain text of compressed text
let readAsText = true

fileInput.addEventListener('change', function(e) {
  let files = e.target.files;

  if( !files.length ){
    return;
  }

  for(let i=0; i<files.length; i++){
    let reader = new FileReader()

    filepuller.read( files[i], readAsText, function(error, data){
      if (error) {
        console.warn(err)
        return
      }

      console.log("This is the content of the file:")
      console.log(JSON.parse(data))
    })
  }
})

Note that readAsText is an option to tell if you expect the file to contain text, whether compressed or not. Here are few use cases about that:

  • If you expect text on a compressed file, the binary data will be converted into unicode
  • If you expect text but the conversion to unicode give a majority of non-valid unicode characters, you will have both an error and the result. This result will be the buffer as an ArrayBuffer
  • If you expect binary (readAsText = false) on a text file (compressed or not), an ArrayBuffer will be given

About

Load files using a unique function from URL or dialog, compressed or not

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published