Here you have working example: http://jsbin.com/wecupu/2/edit
HTML
<!DOCTYPE html>
<html>
<head>
  <script src="//cdnjs.cloudflare.com/ajax/libs/fabric.js/1.4.13/fabric.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <input id="file" type="file" accept="image/*">
  <canvas id="canvas" width="600" height="600"></canvas>
</body>
</html>
JS
var readFile = function(e) {
  var input = e.target;
  var reader = new FileReader();
  reader.onload = function(){
    var img = document.createElement('img');
    img.src = reader.result;
    var image = new fabric.Image(img);
    canvas.add(image);
  };
  reader.readAsDataURL(input.files[0]);
};
document.getElementById('file').addEventListener('change', readFile);
var canvas = new fabric.Canvas(document.getElementById('canvas'), {
  backgroundColor: '#c8c8c8'
});
You just have to use FileReader to read image file into base64 format and add fabric.Image to canvas.
However, there is limitation to file size. It varies across browsers: What is the size limit of a Base64 DataURL image?