Avatar billede jps2mt Nybegynder
22. august 2002 - 23:07 Der er 7 kommentarer og
1 løsning

Find filstørrelsen

Hvordan kan man med JavaScript finde størrelsen på en fil i bytes??

Det skal kobles sammen med et JavaScript der styrer en webcam side, men hvis billedet er en bestemt størrelse (i bytes) skal den vise et default billede...

Den fil den skal tjekke ligger på et andet domæne, men på samme server, og kan tilgåes via filsystemet...

Mvh. Morten
Avatar billede jakoba Nybegynder
22. august 2002 - 23:16 #1
det kan du overhovedet ikke. Javascript udmærker sig ved ikke at have funktioner til at læse eller skrive filer. (af sikkerhedsgrunde da det kunne misbruges).

Du kan muligvis finde ud af en fils størrelse med JScript (IEs version af javascript) i samarbejde med ActiveX objekter. men hvis det lykkes er det et sikkerhedshul du har fundet.

mvh JakobA
Avatar billede jps2mt Nybegynder
23. august 2002 - 10:52 #2
Kan man så balnde PHP ind i et JavaScript, altså hvor den lige skifter til PHP for at tjekke en fils størrelse???
Avatar billede jakoba Nybegynder
23. august 2002 - 12:19 #3
med php kan du checke størrelsen på filer der ligger på din server, ,

<?php
$storrelse = filesiz("dinfil.zip");
?>

og så skrive den filstørrelse ind i den side der bliver vist
<a href="dinfil.zip">Hent filen her</a> (<? echo $storrekse; ?>)<br>

eller ind i en javascript variabel:
<script type='text/javascrip'>
var fsize = <? echo $storrekse; ?>;
</script>

du kan også finde størrelsen fpå en fil på en anden server (hvis den giver dig lov), men du kan ikke finde størrelsen på en fil der ligger på brugerens PC.

mvh JakobA
Avatar billede jakoba Nybegynder
23. august 2002 - 12:38 #4
ups.  filesiz  skal være  filesize  (med 'e' tilsidst)
og    storrekse  skal være  storrelse  ('l' istedet for 'k') 2 steder
Avatar billede jps2mt Nybegynder
23. august 2002 - 13:33 #5
Der er problemet så bare at der tjekker den kun filstørrelsen EN gang...Den skla tjekke den ved HVER reload af billedet (hvert 15. sekund)...Og den reloader jo ikke side når den henter billedet...

Her er koden som den er nu...

<script language='JavaScript'>
var Interv = 15
function startClock2() {
Interv = Interv - 1
   
var now = new Date()
var dummystr = parseInt(now.getTime() / 1000)
delete now

if (Interv < 0) {
  if (document.images) {
  document.BCimage.src = 'http://www.blackchart.dk/webcam/image.jpg' + '?' + dummystr
  document.Smillyimage.src = 'http://www.smilly.dk/webcam/image.jpg' + '?' + dummystr
  } else {
  window.location.reload()
  }
  Interv = 15
}
timrID = setTimeout('startClock2()', 1000)
}
startClock2()
//-->
</script>

Ved document.smillyimage.src skal den tjekke filstørrelsen på http://www.smilly.dk/webcam/image.jpg (eller d:\www\www.smilly.dk\webcam\image.jpg som den hedder på serveren)
Avatar billede jakoba Nybegynder
23. august 2002 - 13:58 #6
Lav en lille .php fil fx med navnet:  http://www.blackchart.dk/webcam/webcam.php

<?  // <!-- Minus AutoDato -->

                                // udskift med dine egne værdier for filnavne osv
if ( filesize( "image.jpg" ) == 1234 ) {
    $filename = "image.jpg"
    header ("Content-type: image/jpeg");  // mimetype skal svare til billedfilen
} else {
    $filename = "sorry_not_active.gif"
    header ("Content-type: image/gif");
}

                                // sørg for der ikke bliver cashet
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");

                                // og send så det valgte billede
$fp = fopen ( $filename , "rb" );
$ok = fpassthru ($fp);  // sender billedet
fclose ($fp);

?>

så giver du blot adressen på det script istedet for mavnet på billedfilen.
der cashes ikke, så den behøver ikke den der med    + '?' + dummystr

  document.BCimage.src = 'http://www.blackchart.dk/webcam/webcam.php';

mvh JakobA
Avatar billede jps2mt Nybegynder
23. august 2002 - 16:06 #7
Det ser jo bare fjong ud :o) Selvom du havde glemt et par ; i PHP'en...
Avatar billede jakoba Nybegynder
23. august 2002 - 16:18 #8
Ja det er jeg slem til. har leget for meget med javascript på det seneste.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester