Avatar billede simsen Mester
12. oktober 2006 - 14:20 Der er 4 kommentarer og
1 løsning

upload af fil større end 4 mb

Hej,

Jeg forsøger at lave en upload funktion, hvor jeg spørger på fil størrelsen. Hvis den er større end XX antal mb, skal den vise en label med fejltekst.

Holder jeg mig indenfor det max tilladte (i webconfig filen), går den igennem testen. Men forsøger jeg at uploade en fil, der er større end det, der står i webconfig filen, får jeg en "siden kan ikke vises" lige så snart jeg trykker på upload knappen. Forsøger jeg at køre det i debug mode, kan jeg se, den kommer slet ikke ind i upload knappens metode.

Nogen der har en idé til, hvordan jeg uden at bruge scripts, kan få testet også når brugeren forsøger at uploade en fil, der er større end det tilladte i webconfig filen?

mvh
simsen :-)

I webconfig har jeg skrevet følgende:
<httpRuntime maxRequestLength="4500"></httpRuntime>

Min kode til min upload knap ser ud som følgende:

protected void btnUpload_Click(object sender, EventArgs e)
    {
        int userid = (int)Session[WKUser.sessionuserid];

        if (FileUpload1.HasFile == true)
        {
             

                //antal bytes = 4 mb
                if (FileUpload1.PostedFile.ContentLength > 4000000)
                {
                    lblStatus.Visible = true;
                    lblStatus.Text = "Filen er for stor";
                }
                else
                {
                    //Laver en ny instans og finder filnavn
                    FileInfo filInfo = new FileInfo(FileUpload1.FileName);

                    //Laver en streng med stien og navn filen der uploades skal gemmes som
                    string destination = Page.MapPath("~/Upload") + "\\" + userid.ToString() + "-" + filInfo.Name;

                    //lblStatus.Visible = true;
                    //lblStatus.Text = "Filen er i orden";
                    try
                    {
                        FileUpload1.SaveAs(destination);
                    }
                    catch
                    { }
                }
           


        }
    }
Avatar billede snepnet Nybegynder
12. oktober 2006 - 14:22 #1
Du skal pille ved MaxRequestLength
http://support.microsoft.com/kb/323245
Mvh
Avatar billede simsen Mester
12. oktober 2006 - 14:32 #2
hej snepnet,

Jamen jeg vil ikke pille ved den i webconfig filen. Jeg vil max tillade upload af 4 mb. Der hvor der er problemer, er når brugeren er "dum" nok til at forsøge at uploade en fil, der er større end, det der er tilladt - nemlig de 4 mb. Han får ikke en advarsel, om at den fil han uploadede er for stor, men får istedet en "Siden kan ikke vises"

Jeg ville så gå ind og teste på hvor stor filen var i upload knappens metode, men forsøger en bruger at uploade en for stor fil, kommer den slet ikke ind i metoden. Den går direkte til "Siden kan ikke vises"

mvh
simsen :-)
Avatar billede snepnet Nybegynder
12. oktober 2006 - 15:13 #3
HAHA ... Der var jeg vist lidt for hurtig der :o)
Din overskrift var bare så æhh... klassisk, så læste nok ikke helt så meget som jeg burde ;o)

Det er lidt mere problematisk ... Hvis du ønsker at fortælle brugeren at filen er for stor skal du enten kunne udlede det clientside, eller acceptere større indkommende filer end brugeren har lov til at uploade (så du kan ramme din eventhandler).

Hvis du skal udledede det på klientsiden - kræver det at dit javascript får adgang til filsystemet, og den går jo ikke.
Du kan benytte et activex objekt til det, men det vil kun virke i IE (hvis brugeren giver lov).

Det kan du se noget om her
http://www.codeproject.com/useritems/AJAXUpload.asp

// her den centrale det af clientside koden
var filePath = document.getElementById("file").value.replace(/\\/g, "\\\\");
fso = new ActiveXObject( 'Scripting.FileSystemObject' );
f = fso.GetFile( this.filePath );
this.fileSize = f.size;
this.fileName = f.Name;

Alternativt skal du - ved at pille ved maxRequestLenght - give lov til større uploads end du reelt tillader... Så vil du kunne havne i din kode.
Og ... well... Du kan jo så også sørge for at fortælle det meget tydeligt til brugere på selve siden :o)

Mvh
Avatar billede simsen Mester
19. oktober 2006 - 14:05 #4
Hej snepnet

Ikke det svar jeg håbede på - men smid et svar og du får dine points :-)

mvh
simsen
Avatar billede snepnet Nybegynder
22. oktober 2006 - 21:33 #5
Ok :o)
Mvh
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