Gå til innhold

Filstørrelse (file size) med JavaScript


Anbefalte innlegg

Skrevet

Hei

 

Jeg trenger å hente ut filstørrelsene til filer på samme server som scriptet mitt kjører. Normalt ville dette blitt løst med et serverside script (PHP osv.), men i dette tilfellet går det ikke. I utgangspunktet trenger jeg bare filstørrelsen til PDF-dokumenter, men det er i grunn kjekt om jeg kan vise størrelser fra alle type filer.

 

Om dette på en eller annen måte lar seg løse med HTML DOM el.l er det i grunn ennå bedre.

 

På forhånd takk for svar.

Videoannonse
Annonse
Skrevet

Joda, dette går men er veldig hårete. En løsning er å bruke asynkrone javascript kall mot URL'er for å hente ut størrelsen fra HTTP. Dette fungerer bare for filer som har en Content-Length og som ligger på samme server som selve skriptet kjører på, men her er et lite løsningsforslag:

 

<html>
<head>
<script>
function checkSize(url, callbackFunc)
{
var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
request.open("HEAD", url, true);

request.onreadystatechange = function()
{
	if (request.readyState == 4 && request.status == 200)
	{
		var size = request.getResponseHeader("Content-Length");
		if (size)
		{
			callbackFunc(size);
		}
	}
};
request.send();
}
</script>
<body onLoad="checkSize('/foobar', alert);">

</body>
</html>

Skrevet
var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");

Dette ActiveX objektet vil vel be om tilgang i IE < 7? Jeg skulle helst hatt så lav brukerterskel som mulig for siden.

Jeg ser også for meg at dette kan gi en noe treg rendring når man får en del http request, så løsningen blir nok å sette filstørrelsen manuelt inntil videre.

 

Takk for tipset.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...