Avatar billede bongo20 Nybegynder
19. januar 2005 - 10:29 Der er 12 kommentarer og
1 løsning

størrelsen på fil

Hej

Jeg har en side hvor brugerne kan uploade filer.
Jeg vil gerne styre hvilken maksimal størrelse billederne må have.
Det gør jeg lige nu på serveren efter filen er posted, men det er jo ekstremt langsomt hvis det er en stor fil.

Kan det lade sig gøre med javascript at tjekke størrelsen på en fil inden den postes ?

:o)
Avatar billede thomas_yde Nybegynder
19. januar 2005 - 10:30 #1
Ja men så skal du bruge activeX objekter, dette er noget brugeren skal give lov til.
Og firefox mener jeg ikke kan bruge disse
Avatar billede bongo20 Nybegynder
19. januar 2005 - 10:37 #2
jeg bruger lige nu en

<input id="MyFile" type="file" runat="server" />                               

er der slet ikke andre måde at overføre filer via en webside?
Avatar billede bongo20 Nybegynder
19. januar 2005 - 10:37 #3
Uden activeX vel at mærke
Avatar billede keysersoze Ekspert
19. januar 2005 - 10:45 #4
burde kunne lade sig gøre vha noget a la dette;

<html>
<head>
<script type="text/javascript">
te = new Array("jpg", "gif", "bmp"); //De tilladte filtyper
ms = 64 * 64; //Billedets maksimale størrelse (i byte) - her 1 MB

function tjek(felt) {
  if (felt.value != "") {
    regexp = new RegExp("\.(" + te.join("|") + ")$", "i");
    if (!felt.value.match(regexp))
      alert("Forkert filtype! De accepterede endelser er:\n\n" + te.join("\n"));
    else if (document.all)
      document.images["testbill"].src = felt.value;
  }
}

function tjekstr(obj) {
  if (obj.fileSize > ms)
    alert("Billedet er for stort! Den maksimale st\370rrelse er:\n\n" + ms + " byte");
}
</script>
</head>
<body>
<form>
<input type="file" name="bill" onChange="tjek(this);" /><br />
<input type="submit" value="send" />
<img src="" name="testbill" style="display: none;" onLoad="tjekstr(this);" />
</form>
</body>
</html>
Avatar billede thomas_yde Nybegynder
19. januar 2005 - 10:49 #5
For at kunne læse filens størelse er det nødvendigt at spørge filsystemet om hvor stor filen er, det du henter frem er såmen bare strengen med filnavn.
Avatar billede keysersoze Ekspert
19. januar 2005 - 11:02 #6
nej... jo.

function et tjecker filnavnet for de korrekte fil-endeleser - men function 2 tjecker filens størrelse. Dog er det vist IE only
Avatar billede the_ghost Nybegynder
19. januar 2005 - 11:13 #7
Såvidt jeg ved er det ikke muligt at tjekke for fil-størrelsen på andre FireFox og Opera.

Jeg løb ind i samme problem, da jeg var ved at lave en upload, den gang oprettede jeg også et spg. her: http://www.eksperten.dk/spm/529195 og mange andre steder på interettet. Alle gav mig svaret: "Det er desværre ikke muligt".
Avatar billede the_ghost Nybegynder
19. januar 2005 - 11:16 #8
Den bedste løsning vil vel være at lave et tjek på serverside + tjekket med ActiveX, for så for du tjekket hos alle dem, der bruger IE før de sender filen, og så må de andre leve med at der først tjekkes efter filen er sendt
Avatar billede bongo20 Nybegynder
19. januar 2005 - 12:07 #9
Det virker altså glimrende det keysersoze har lavet der,.. og forøvrigt skal mine brugere bruge IE eller holde sig væk!
Avatar billede bongo20 Nybegynder
19. januar 2005 - 12:20 #10
Jeg har dog et spørgsmål,.. kan det lade sig gøre at "nulstille" en selection i et fil element?

Altså noget med

document.getElementById('MyFile').value = ''

bortset fra det der ikke virker

:o)
Avatar billede keysersoze Ekspert
21. januar 2005 - 22:34 #11
jeg er ikke 100% sikker - har ikke selv forsøgt med noget - men mener ikke at det kan lade sig gøre at redigere ved et file-felt da du jo så på den måde teoretisk ville kunne udnytte dette til at vælge systemfiler eller andet fra brugerens harddisk.
Avatar billede olebole Juniormester
22. januar 2005 - 01:38 #12
<ole>

... et gæt:
  document.FORMNAVN.reset();
- som jo naturligvis reset'er hele formen, men nok er det eneste, du får lov til  :)

/mvh
</bole>
Avatar billede bongo20 Nybegynder
02. februar 2005 - 01:55 #13
Tak for hjælpen alle,.. keysersoze får pointene. Det er hans forslag jeg bruger.
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