Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

FileReader

HTML5 FileAPI FileReader for Node.JS (could potentially be modified to work with older browsers as well).

See https://github.com/node-file-api/file-api and https://developer.mozilla.org/en-US/docs/Web/API/FileReader

'use strict';varFileReader=require('filereader'),fileReader=newFileReader();fileReader.setNodeChunkedEncoding(true||false);fileReader.readAsDataURL(newFile('./files/my-file.txt'));// non-standard alias of `addEventListener` listening to non-standard `data` eventfileReader.on('data',function(data){console.log("chunkSize:",data.length);});// `onload` as listenerfileReader.addEventListener('load',function(ev){console.log("dataUrlSize:",ev.target.result.length);});// `onloadend` as propertyfileReader.onloadend',function(){console.log("Success");});

Implemented API

  • .readAsArrayBuffer(<File>)
  • .readAsBinaryString(<File>)
  • .readAsDataURL(<File>)
  • .readAsText(<File>)
  • .addEventListener(eventname, callback)
  • .removeEventListener(callback)
  • .dispatchEvent(eventname)
  • .EMPTY = 0
  • .LOADING = 1
  • .DONE = 2
  • .error = undefined
  • .readyState = self.EMPTY
  • .result = undefined

Events

  • start
  • progress
  • error
  • load
  • end
  • abort
  • data // non-standard

Event Payload

end

{ target:
{nodeBufferResult: <Buffer> // non-standard
, result: <Buffer|Binary|Text|DataURL>}}

progress

// fs.stat will probably complete before this// but possibly it will not, hence the check{lengthComputable: (!isNaN(file.size)) ? true : false,loaded: buffers.dataLength,total: file.size}

Non-W3C API

  • .on(eventname, callback)
  • .nodeChunkedEncoding = false
  • .setNodeChunkedEncoding(<Boolean>)

Misc Notes on FileReader

FileReader.setNodeChunkedEncoding() is a non-standard method which hints that the FileReader should chunk if possible

I.E. The file will be sent with the header Transfer-Encoding: chunked

The default is false since many webservers do not correctly implement the standard correctly, and hence do not expect or accept Transfer-Encoding: chunked from clients.

FileReader.on is a non-standard alias of addEventListener

EventTarget.target.nodeBufferResult is a non-standard property which is a Node.Buffer instance of the data.

FileReader.on('data', fn) is a non-standard event which passes a Node.Buffer chunk each time the progress event is fired.

About

HTML5 FileAPI `FileReader` for Node.JS.

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages