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'; var FileReader = fileReader = ; fileReader;fileReader; // non-standard alias of `addEventListener` listening to non-standard `data` eventfileReader; // `onload` as listenerfileReader; // `onloadend` as propertyfileReaderonloadend', 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: ! ? true : false loaded: buffersdataLength total: filesize
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.