The readAsBinaryString method is used to start reading the contents of the specified Blob or File. When the read operation is finished, the readyState becomes DONE, and the loadend is triggered. At that time, the result attribute contains the raw binary data from the file.

Note that this method is now deprecated as per the 12 July 2012 Working Draft from the W3C.




The Blob or File from which to read.


var canvas = document.createElement('canvas');
var height = 200;
var width  = 200;

canvas.width  = width;
canvas.height = height;

var ctx = canvas.getContext('2d');

ctx.strokeStyle = '#090';
ctx.arc(width/2, height/2, width/2 - width/10, 0, Math.PI*2);

canvas.toBlob(function (blob) {
  var reader = new FileReader();

  reader.onloadend = function () {



Specification Status Comment
File API
The definition of 'FileReader' in that specification.
Working Draft Initial definition.

Browser compatibility

Feature Firefox (Gecko) Chrome Internet Explorer* Opera* Safari
Basic support 3.6 (1.9.2) 7 10 12.02 6.0.2
Feature Firefox Mobile (Gecko) Android IE Mobile Opera Mobile Safari Mobile
Basic support 32 3 10 11.5 6.1

Implementation notes

Gecko-specific notes

  • Prior to Gecko 2.0 beta 7 (Firefox 4.0 beta 7), all Blob parameters below were File parameters; this has since been updated to match the specification correctly.
  • Prior to Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) the FileReader.error property returned a FileError object. This interface has been removed and FileReader.error is now returning the DOMError object as defined in the latest FileAPI draft.

See also

Document Tags and Contributors

Contributors to this page: teoli, kscarfone, sklnd, Chad_Smith, alex35, Jeremie
Last updated by: teoli,