Avatar billede jps6kb Novice
22. juli 2008 - 15:51 Der er 6 kommentarer og
1 løsning

FileUpload. Validering af billedestørrelse

Hey,

Jeg har lige lavet det her kode, og det virkede helt fint - men...
jeg har nu opdaget, at de billeder der bliver uploadet ikke kan læses. Hverken på siden eller filsystemet.

Hvordan kan jeg ellers gøre det, eller hvad gør jeg forkert?

if (fuFlag.HasFile)
{
    Stream file = fuBillede.FileContent;
    Bitmap img = new Bitmap(file);
    file.Close();
    if (img.Height > 30 || img.Width > 50)
    {  // Billedet er for stort.
        fuBillede.Dispose();
    }
    img.Dispose();
}

fuFlag.SaveAs(Server.MapPath("minmappe") + fuBillede.FileName);

Hvis jeg udkommenterer min if-sætning kan billedet snildt læses.
Avatar billede jps6kb Novice
22. juli 2008 - 15:52 #1
Jeg har noget mere kode, som gør, at billedet ikke bliver gemt, hvis det er for stort, men det er bare bool og if.
Avatar billede aaberg Nybegynder
22. juli 2008 - 18:56 #2
Har du testet om koden kommer ind i if sætningen når den ikke skal det? Det kunne jo tyde på det, siden det virker når du udkommenterer den. Skal billederne være 50x30 eller 30x50?
Avatar billede jps6kb Novice
22. juli 2008 - 22:05 #3
Ja, for hvis den ikke kommer ind i if, så skriver den på siden at billedet er for stort.
Ellers uploader den og redirecter.
Så det er ret nemt at se.

I øvrigt, så lavede jeg lige en fejl, men kun lige her.

if (fuFlag.HasFile) = if (fuBillede.HasFile)

Hehe... ellers havde det nok været pinligt.
Avatar billede aaberg Nybegynder
24. juli 2008 - 09:56 #4
Jeg tror problemet skyldes, at du ændre på positionen af filens Stream inde i if sætningen, derudover disposer du den. Prøv noget lignende dette i stedet:


if (fuBillede.HasFile)
{
    Stream file = fuBillede.FileContent;
    Bitmap img = new Bitmap(file);
    file.Close();
    if (img.Height > 30 || img.Width > 50)
    {  // Billedet er for stort.
       
    }
    else
    {
        // Billedet er korrekt størrelse og bliver gemt.
        img.Save(Server.MapPath("minmappe") + fuBillede.FileName);
    }
    fuBillede.Dispose();
    img.Dispose();
}
Avatar billede aaberg Nybegynder
11. september 2008 - 11:48 #5
Fik du svar på dit spørgsmål?
Avatar billede jps6kb Novice
17. februar 2009 - 15:40 #6
Det gjorde. Glemte tråden - beklager.
Smid svar.
Avatar billede aaberg Nybegynder
18. februar 2009 - 08:03 #7
:-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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