4

On a webpage, once images have been downloaded and rendered, I need to determine an image's file size (kb) within the browser context (so I could display that info on the page, just below the image)

Learner85
  • 51
  • 5

1 Answers1

3

The easiest way is probably with a HEAD request returning the Content-Length:

function fileSize(img, func) {
  var xhr = new XMLHttpRequest();
  xhr.open('HEAD', img.src, true);
  xhr.onreadystatechange = function() {
    if(xhr.readyState == 4 && xhr.status == 200) {
      func(xhr.getResponseHeader('Content-Length')) 
    }
  }
  xhr.send()
}

Usage

fileSize(imgNode, function(size) {
  // ...
})
Daryl Ginn
  • 1,394
  • 9
  • 14