Laste opp filer med ASP.NET

I vanlig klassisk ASP så finnes det ingen innebygget håndtering av fil opplastning men man må bruke tredjeparts-komponenter som f.eks  ASPUpload. I ASP.NET så finnes det innebygget funksjon for dette. Man kan f.eks benytte seg av FileUpload som er en ferdig, innebygget server kontroll.

Koden ser ut som følgende for en enkel opplastningsfunksjon. Men tenk på å ikke kopiere koden nedenfor direkte, men ha med noen form av kontroll på hvilke filer den får laste opp. Hvis ikke, vil du komme til å utsette hjemmesiden din for en svært alvorlig sikkerhetsrisiko.

<%@ Page Language="C#" %>

<script runat="server">
    protected void Do_Upload(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
            try
            {
                FileUpload1.SaveAs( Server.MapPath("uploads/" + FileUpload1.FileName) );
		Response.Write("Uppladdning klar: " + FileUpload1.PostedFile.FileName);
            }
            catch (Exception ex)
            {
                Response.Write("FEL: " + ex.Message.ToString());
            }
        else
        {
            Response.Write("Du angav ingen fil.");
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Upload Files</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button runat="server" OnClick="Do_Upload" Text="Upload File" />
    </form>
</body>
</html>

Utover å bare legge inn koden ovenfor så må du også opprette en mappe som heter f.eks “uploads” og referere rett til denne i anropet til Server.MapPath(). Hvis ikke, kommer opplastingen ikke til å virke.

Om du gjorde rett så kommer din opplastnings side  til å se ut som nedenfor mer eller mindre, dvs bare en lett fil-velger og en knapp for å laste opp filen. Når du deretter laster opp en fil så kommer du til å få vite hvilket navn den er lagret med.


aspnet_upload_form.png

Var denne artikkelen til hjelp?

Related Articles