TOC

This article has been localized into German by the community.

Controls:

FileUpload-Steuerelement

Mit ASP.NET ist es äußerst einfach geworden, Datei-Uploads von Benutzern anzunehmen. Mit dem FileUpload-Steuerelement kann der Upload über ein paar Codezeilen abgewickelt werden, wie Sie im folgenden Beispiel sehen werden. Beachten Sie jedoch bitte, dass Sie bestimmte Sicherheitsaspekte bedenken sollten, wenn Sie Dateien von Benutzern annehmen möchten! Hier ist die erforderliche Auszeichnung:

<form id="form1" runat="server">
    <asp:FileUpload id="FileUploadControl" runat="server" />
    <asp:Button runat="server" id="UploadButton" text="Upload" onclick="UploadButton_Click" />
    <br /><br />
    <asp:Label runat="server" id="StatusLabel" text="Upload status: " />
</form>

Und hier ist der CodeBehind-Code, der erfordert wird, um den Upload zu verarbeiten:

protected void UploadButton_Click(object sender, EventArgs e)
{
    if(FileUploadControl.HasFile)
    {
        try
        {
            string filename = Path.GetFileName(FileUploadControl.FileName);
            FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
            StatusLabel.Text = "Upload status: File uploaded!";
        }
        catch(Exception ex)
        {
            StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
        }
    }
}

Wie Sie sehen können, ist alles relatv simpel. Sobald der Upload-Button angeklickt wird, überprüfen wir, ob eine Datei im Upload-Steuerelement vorhanden ist. Falls ja, verwenden wir die SaveAs-Methode des FileUpload-Steuerelements, um die Datei zu speichern. Wir verwenden den root unseres Projektes (dabei wird auf die MapPath-Methode zurückgegriffen) sowie den Namensteil des Pfades, den der Benutzer angegeben hat. Wenn alles in Ordnung ist, benachrichtigen wir den Benutzer, indem wir die Text-Eigenschaft des StatusLabel festlegen. Andernfalls wird eine Fehlermeldung ausgegeben und wir benachrichtigen den Benutzer darüber ebenfalls.

Dieses Beispiel wird die Aufgabe erledigen, aber wie Sie sehen können, wurde nichts geprüft. Der Benutzer kann jedes Dateiformat hochladen und die Dateigröße ist allein durch die Serverkonfiguration begrenzt. Ein solideres Beispiel könnte z. B. so aussehen:

protected void UploadButton_Click(object sender, EventArgs e)
{
    if(FileUploadControl.HasFile)
    {
        try
        {
            if(FileUploadControl.PostedFile.ContentType == "image/jpeg")
            {
                if(FileUploadControl.PostedFile.ContentLength < 102400)
                {
                    string filename = Path.GetFileName(FileUploadControl.FileName);
                    FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
                    StatusLabel.Text = "Upload status: File uploaded!";
                }
                else
                    StatusLabel.Text = "Upload status: The file has to be less than 100 kb!";
            }
            else
                StatusLabel.Text = "Upload status: Only JPEG files are accepted!";
        }
        catch(Exception ex)
        {
            StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
        }
    }
}

Hier verwenden wir zwei Parameter, ContentLength und ContentType, um die Datei, die der Benutzer hochladen möchte, einer einfachen Überprüfung zu unterziehen. Die Statusmeldungen sollten eindeutig sein und können je nach Ihren Bedürfnissen angepasst werden.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!