GithubHelp home page GithubHelp logo

webspace-sdk / filereader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from node-file-api/filereader

0.0 0.0 0.0 15 KB

HTML5 FileAPI `FileReader` for Node.JS.

License: Apache License 2.0

JavaScript 100.00%

filereader's Introduction

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 = require('filereader')
  , fileReader = new FileReader()
  ;

fileReader.setNodeChunkedEncoding(true || false);
fileReader.readAsDataURL(new File('./files/my-file.txt'));

// non-standard alias of `addEventListener` listening to non-standard `data` event
fileReader.on('data', function (data) {
  console.log("chunkSize:", data.length);
});

// `onload` as listener
fileReader.addEventListener('load', function (ev) {
  console.log("dataUrlSize:", ev.target.result.length);
});

// `onloadend` as property
fileReader.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.

filereader's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.