Avatar billede tblaster Nybegynder
17. juli 2003 - 09:13 Der er 30 kommentarer og
1 løsning

Størrelse på billed der skal uploades

Det er muliget at hente oplysninger om et billed der skal uploades vha. følgende:

if ((file1str.indexOf(".jpg")>0) || (file1str.indexOf(".jpeg")>0) || (file1str.indexOf(".bmp")>0)) {

Er det på en lignede måde muligt at hente oplysninger om billedets størrelse?

Eller er der en måde at checke størrelsen af billedet uden at man skal over i upload koden altså en kode der starter med:

Set Upload = Server.CreateObject("Persits.Upload")

Jeg køre med ASPUpload
Avatar billede keysersoze Ekspert
17. juli 2003 - 09:31 #1
du er tvunget til at uploade billedet før du kan tjecke størrelsen på det - det mener jeg kan gøres sådan (såfremt du har initialiseret aspupload som Size);

Response.Write File.Size
Avatar billede tblaster Nybegynder
17. juli 2003 - 09:35 #2
Det kan jeg ikke bruge ... jeg skal jo have en check på filen der uploades da jeg vil have en begrænsning. Jeg vil have så man kun kan uploade billeder der har max størrelsen 1mb ... og skal derfor have en check inden billedet uploades!
Avatar billede keysersoze Ekspert
17. juli 2003 - 09:58 #3
det kan ikke lade sig gøre... du kan dog sætte en maxsize (Upload.SetMaxSize 150000, True) og derefter finde originalstørrelsen (Response.Write File.OriginalSize)

men du slipper ikke for at uploade
Avatar billede tblaster Nybegynder
17. juli 2003 - 09:59 #4
Der må da være en mulighed for et eller andet. Det er sku da for dårligt hvis folk bliver nødt til at uploade deres billed for så at få besked om at de ikke må upload et så stor billed!
Avatar billede keysersoze Ekspert
17. juli 2003 - 10:01 #5
for dårlig - det er som man tager det. Det er selvfølgelig irriterende, men det ville da også være en ekstrem sikkerhedsrisiko hvis en hjemmeside på den måde kunne gå ned og tjecke filer på enhver harddisk
Avatar billede tblaster Nybegynder
17. juli 2003 - 11:31 #6
Det har du ret I men de kunne jo ændre i aspupload så den starter med at sende filens størrelse eller sådan noget ... det er jo surt for folk der bruger lang tid på at uploade måske 2 mb for så at få en besked om at det ikke er tilladt!
Avatar billede keysersoze Ekspert
17. juli 2003 - 11:40 #7
ikke afprøvet; men så kunne du jo være smart at uploade fx 5 kb af filen - aflæse filens originalstørrelse og bruge det som grundlag til hvorvidt filen er for stor eller ej
Avatar billede tblaster Nybegynder
17. juli 2003 - 11:44 #8
Det var jo en idee ... men hvordan sætter jeg en kode til at uploade 5kb af filen kun?
Avatar billede keysersoze Ekspert
17. juli 2003 - 11:48 #9
bruger SetMaxSize - nærmere forklaring til den findes på aspupload.com
Avatar billede Slettet bruger
17. juli 2003 - 12:06 #10
I øvrigt kan du ikke tjekke et billede med den kode, du viser. Det tjekker kun om fx ".jpg" indgår i filnavnet, og det har intet med billedets type at gøre. En fil med efternavnet .bmp kan sagtens være skadelig. Derfor bør du tjekke på server-siden også.

Her har du en funktion, der tjekker billedts størrelse får upload og desuden har et lidt smartere filtype-tjek:
http://www.phoenixv.dk/exp/bill_str.html
Avatar billede Slettet bruger
17. juli 2003 - 12:06 #11
billedts størrelse får = billedets størrelse før
Avatar billede keysersoze Ekspert
17. juli 2003 - 12:14 #12
naaaaajs :) så har jeg også lært lidt i dag. Jeg har ledt og ledt efter en javascript-metode men uden held... hvor crossbrowser er den?
Avatar billede Slettet bruger
17. juli 2003 - 12:16 #13
Billedstørrelsen: Kun IE.
Resten: Alle generation 4+ vil jeg tro.
Avatar billede Slettet bruger
17. juli 2003 - 12:16 #14
Men jeg må igen understrege, at det ikke tjener som afløser for server-side tjekket!
Avatar billede tblaster Nybegynder
17. juli 2003 - 12:19 #15
det er heller ikke det jeg vil have ... bare en der undgår unødvendig uploadning!
Avatar billede tblaster Nybegynder
17. juli 2003 - 12:20 #16
Har problemer med at kæde det hele sammen ... kan du hjælpe?
Her er hvad jeg har lige nu:

<SCRIPT LANGUAGE="JavaScript">
function ShowProgress()
{
  var file1str = document.MyForm.FILE1.value.toLowerCase();
  if ((file1str.indexOf(".jpg")>0) || (file1str.indexOf(".jpeg")>0) || (file1str.indexOf(".bmp")>0)) {
//    return(true)
} else {
  alert ("Du må kun uploade jpg, jpeg eller bmp filer!");
  return(false)
}
  strAppVersion = navigator.appVersion;
  if (document.MyForm.FILE1.value != "" || document.MyForm.FILE2.value != "" || document.MyForm.FILE3.value != "")
  {
    if (strAppVersion.indexOf('MSIE') != -1 && strAppVersion.substr(strAppVersion.indexOf('MSIE')+5,1) > 4)
    {
      winstyle = "dialogWidth=380px; dialogHeight:140px; center:yes";
      window.showModelessDialog('<% = barref %>&b=IE',null,winstyle);
    }
    else
    {
      window.open('<% = barref %>&b=NN','','width=390,height=130', true);
    }
  }
  return true;
}
    </SCRIPT>
...

<FORM NAME="MyForm" METHOD="POST" ENCTYPE="multipart/form-data" ACTION="upload.asp?<% = PID %>" OnSubmit="return ShowProgress();">
<p align="center">
<INPUT TYPE="FILE" SIZE="40" NAME="FILE1">
<INPUT TYPE=SUBMIT VALUE="Upload!">
</p>
</FORM>

Hvis du kan hjælpe med det så skal jeg nok lige smide 20 ekstra point i!
Avatar billede Slettet bruger
17. juli 2003 - 12:22 #17
Kan du ikke bare bruge mit?
Avatar billede tblaster Nybegynder
17. juli 2003 - 12:28 #18
Jeg skal have det lædet sammen med min eksisterende uploadbar (ShowProgress)
Avatar billede Slettet bruger
17. juli 2003 - 13:03 #19
Du laver bare min form om til:

<form method="post" enctype="multipart/form-data" action="upload.asp?<% =PID %>" onSubmit="return abn(this);">
<input type="file" name="file1" size="40" onChange="tjek(this);" /><br />
<input type="submit" value="Upload!" />
<img src="" name="testbill" style="display: none;" onLoad="tjekstr(this);" />
</form>

Og så skal du indsætte denne funktion mellem mine script-tags:

function abn(frm) {
  if (frm.file1.value == "") {
    alert("Husk at vælge en fil!");
    return false;
  }
  if (window.showModelessDialog)
    window.showModelessDialog(2<% = barref %>&b=IE", null, "dialogWidth:380px; dialogHeight:140px; center:yes;");
  else
    window.open("<% = barref %>&b=NN", "nytVindue", "width=390,height=130");
  return true;
}
Avatar billede Slettet bruger
17. juli 2003 - 13:03 #20
Glem i øvrigt alt om din tidligere form og ShowProgress-funktion.
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:05 #21
hvad mener du meat jeg skal skal glemme alt om min tidligere form og ShowProgress funktion?
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:05 #22
meat = med
Avatar billede Slettet bruger
17. juli 2003 - 13:07 #23
Du skal bare indsætte det, jeg har skrevet.
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:10 #24
Der er fejl et eller andet sted her kan jeg se ... der er noget som ikke er lukket ... det kan jeg se i farvekoderne i mit program ... man kan ikke se hvad der mangeler:

  if (window.showModelessDialog)
    window.showModelessDialog(2<% = barref %>&b=IE", null, "dialogWidth:380px; dialogHeight:140px; center:yes;");
  else
    window.open("<% = barref %>&b=NN", "nytVindue", "width=390,height=130");
  return true;
}

</script>

Køre jeg koden får jeg også en besked om at et objekt var ventet
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:11 #25
der er en " for meget eller for lidt i denne linje:

window.showModelessDialog(2<% = barref %>&b=IE", null, "dialogWidth:380px; dialogHeight:140px; center:yes;");


Hvad skal jeg gøre?
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:12 #26
2 = " ... fandt den! ... checker lige!
Avatar billede Slettet bruger
17. juli 2003 - 13:14 #27
Ja, det må være den.
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:15 #28
Det lader til at virke ... men er det ikke muligt at gøre så hvis man får en popup besked om at filen er for stor eller at man ikke må uploade den type filer at upload feltet så ryddes for ellers kan man jo bare trykke upload og så bliver filen uploadet!
Avatar billede Slettet bruger
17. juli 2003 - 13:19 #29
Man har i JavaScript ikke mulighed for at slette indholdet i et file-felt, men du kan resette formen.
Se førnævnte link.
Avatar billede tblaster Nybegynder
17. juli 2003 - 13:41 #30
Det virker!

Thx

Smid dit svar og du skal få dine point!
Avatar billede Slettet bruger
17. juli 2003 - 21:22 #31
Svar
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