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)
-
Maybe new XmlHttpRequest().getResponseHeader('Content-Length') is useful.ROMANIA_engineer– ROMANIA_engineer2014-09-10 20:04:14 +00:00Commented Sep 10, 2014 at 20:04
-
Asked and answered on here already. Please search before asking. stackoverflow.com/questions/1310378/…Chris Caviness– Chris Caviness2014-09-10 20:05:58 +00:00Commented Sep 10, 2014 at 20:05
Add a comment
|
1 Answer
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) {
// ...
})