Freigeben über


HtmlInputFile-Klasse

Ermöglicht den programmgesteuerten Zugriff auf das HTML-<input type= file>-Element auf dem Server.

Namespace: System.Web.UI.HtmlControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
<ValidationPropertyAttribute("Value")> _
Public Class HtmlInputFile
    Inherits HtmlInputControl
    Implements IPostBackDataHandler
'Usage
Dim instance As HtmlInputFile
[ValidationPropertyAttribute("Value")] 
public class HtmlInputFile : HtmlInputControl, IPostBackDataHandler
[ValidationPropertyAttribute(L"Value")] 
public ref class HtmlInputFile : public HtmlInputControl, IPostBackDataHandler
/** @attribute ValidationPropertyAttribute("Value") */ 
public class HtmlInputFile extends HtmlInputControl implements IPostBackDataHandler
ValidationPropertyAttribute("Value") 
public class HtmlInputFile extends HtmlInputControl implements IPostBackDataHandler

Hinweise

Mit dem HtmlInputFile-Serversteuerelement können Sie das Uploaden von binären oder Textdateien von einem Clientbrowser auf den Server behandeln. Das Uploaden der Dateien kann mit Microsoft Internet Explorer, Version 3.02 oder höher, ausgeführt werden.

Hinweis

Die Enctype-Eigenschaft eines HtmlForm-Steuerelements muss auf "multipart/form-data" festgelegt werden, damit dieses Steuerelement ordnungsgemäß funktioniert.

Geben Sie zur Angabe der Datei für den Upload den vollständigen Dateipfad (z. B. "C:\MyFiles\Test.txt") im Textfeld des Steuerelements ein. Sie können die Datei auch auswählen, indem Sie auf die Schaltfläche Durchsuchen klicken und sie dann im Dialogfeld Datei auswählen auswählen.

Das HtmlInputFile-Steuerelement verfügt über keine integrierte Methode, um Daten an den Server zurückzusenden. Verwenden Sie für den Upload der Datei auf den Server die in der PostedFile-Eigenschaft enthaltene SaveAs-Methode des System.Web.HttpPostedFile-Objekts. Dieser Vorgang wird i. d. R. in einer Ereignisbehandlungsmethode ausgeführt, z. B. für einen Klick auf eine Schaltfläche.

Hinweis

Wenn Sie die SaveAs-Methode der HttpPostedFile-Klasse verwenden, müssen Sie einen vollständigen Pfad (z. B. "C:\MyFiles\Test.txt") angeben. Das Verhalten der SaveAs-Methode können Sie mit dem requireRootedSaveAsPath-Attribut im httpRuntime-Element (ASP.NET-Einstellungsschema)-Konfigurationsabschnitt angeben. Der Standardwert dieses Attributs ist true. Wenn Sie dieses Attribut auf false festlegen und anschließend die SaveAs-Methode ohne Pfadangabe verwenden, wird versucht, die Datei im Verzeichnis "systemroot\system32\inetsrv" zu speichern. In der Standardeinstellung ist dieses Verzeichnis schreibgeschützt, d. h., die Datei kann dort nicht gespeichert werden. Stellen Sie unbedingt sicher, dass das von ASP.NET verwendete Konto über Schreibberechtigung für das Verzeichnis verfügt, in dem Sie die Datei speichern möchten.

Verwenden Sie beim Upload großer Dateien das maxRequestLength-Attribut des httpRuntime-Element (ASP.NET-Einstellungsschema)-Elements, um die maximal zulässige Dateigröße zu erhöhen. Beim Überschreiten der angegebenen Dateigröße wird im Browser ein DNS-Fehler generiert. Beim Upload großer Dateien erhalten Sie möglicherweise auch folgende Fehlermeldung:

aspnet_wp.exe (PID: 1520) wurde erneut verwendet, da die Speicherbelegung 460 MB (60 Prozent des verfügbaren RAM) überschritten hat.

Wenn diese Fehlermeldung auftritt, erhöhen Sie den Wert des memoryLimit-Attributs im processModel-Element (ASP.NET-Einstellungsschema)-Element der Datei Machine.config.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von HtmlInputFile finden Sie unter HtmlInputFile-Konstruktor.

Thema Position
Gewusst wie: Hinzufügen von HTML-Serversteuerelementen zu einer Webseite mithilfe von ASP.NET-Syntax Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Festlegen der Eigenschaften von HTML-Serversteuerelementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von HTML-Serversteuerelementen zu einer Webseite mithilfe von ASP.NET-Syntax Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Festlegen der Eigenschaften von HTML-Serversteuerelementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von HTML-Serversteuerelementen zu einer Webseite mithilfe von ASP.NET-Syntax Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Programmgesteuertes Festlegen der Eigenschaften von HTML-Serversteuerelementen Erstellen von ASP.NET-Webanwendungen

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit dem HtmlInputFile-Steuerelement ein einfaches Uploadszenario für Dateien erstellt wird. Damit dieses Beispiel ordnungsgemäß ausgeführt werden kann, müssen Sie auf dem Laufwerk C des Computers ein Verzeichnis mit der Bezeichnung Temp erstellen.

<%@ Page Language="VB" AutoEventWireup="True" %>

<script runat="server">

  Sub Button1_Click(ByVal Source As Object, ByVal e As EventArgs)
            
    If Text1.Value = "" Then
      
      Span1.InnerHtml = "Error: You must enter a file name."
      Return
      
    End If
            
    If File1.PostedFile.ContentLength > 0 Then
      
      Try
        File1.PostedFile.SaveAs(("c:\temp\" & Text1.Value))
        Span1.InnerHtml = "File uploaded successfully to <b>c:\temp\" & _
                          Text1.Value & "</b> on the Web server."
        
      Catch exc As Exception
        Span1.InnerHtml = "Error saving file <b>c:\temp\" & _
                          Text1.Value & "</b><br>" & exc.ToString() & "."
      End Try
      
    End If
    
  End Sub

</script>

<html>
  <head>
    <title>HtmlInputFile Example</title>
 </head>
 <body>
 
    <h3>HtmlInputFile Example</h3>
 
    <form enctype="multipart/form-data" 
          runat="server">
 
       Select File to Upload: 
       <input id="File1" 
              type="file" 
              runat="server">
 
       <p>
       Save as file name (no path): 
       <input id="Text1" 
              type="text" 
              runat="server">
 
       </p>
       <p>
       <span id=Span1 
             style="font: 8pt verdana;" 
             runat="server" />
 
       </p>
       <p>
       <input type=button 
              id="Button1" 
              value="Upload" 
              onserverclick="Button1_Click" 
              runat="server">
 
       </p>

    </form>
 
 </body>
 </html>
<%@ Page Language="C#" AutoEventWireup="True" %>

<script runat="server">
 
  void Button1_Click(object Source, EventArgs e)
  {

    if (Text1.Value == "")
    {
      Span1.InnerHtml = "Error: You must enter a file name.";
      return;
    }

    if (File1.PostedFile.ContentLength > 0)
    {
      try
      {
        File1.PostedFile.SaveAs("c:\\temp\\" + Text1.Value);
        Span1.InnerHtml = "File uploaded successfully to <b>c:\\temp\\" +
                           Text1.Value + "</b> on the Web server.";
      }
      catch (Exception exc)
      {
        Span1.InnerHtml = "Error saving file <b>c:\\temp\\" +
                           Text1.Value + "</b><br>" + exc.ToString() + ".";
      }
    }
  }
 
</script>

<html>
  <head>
    <title>HtmlInputFile Example</title>
  </head>
 <body>
 
    <h3>HtmlInputFile Example</h3>
 
    <form enctype="multipart/form-data" 
          runat="server">
       
       Select File to Upload: 
       <input id="File1" 
              type="file" 
              runat="server">
 
       <p>
       Save as file name (no path): 
       <input id="Text1" 
              type="text" 
              runat="server">

       </p>
       <p>
       <span id=Span1 
             style="font: 8pt verdana;" 
             runat="server" />
 
       </p>
       <p>
       <input type=button 
              id="Button1" 
              value="Upload" 
              onserverclick="Button1_Click" 
              runat="server">

       </p>
 
    </form>
 
 </body>
 </html>
<%@ Page Language="JScript" AutoEventWireup="True" %>

<script runat="server">

  function Button1_Click(source : Object, e : EventArgs){
      
    if(Text1.Value == ""){

        Span1.InnerHtml = "Error: You must enter a file name."
        return

    }
    
    if(File1.PostedFile.ContentLength > 0){

        try
        {
            File1.PostedFile.SaveAs(("c:\\temp\\" + Text1.Value))
            Span1.InnerHtml = "File uploaded successfully to <b>c:\\temp\\"
                            + Text1.Value + "</b> on the Web server."

        }

        catch(exc : Exception)
        {
            Span1.InnerHtml = "Error saving file <b>c:\\temp\\"
                            + Text1.Value + "</b><br>" + exc.ToString() + "."
        }
    }
  }

</script>

<html>
  <head>
    <title>HtmlInputFile Example</title> 
  </head>
  
  <body>
 
    <h3>HtmlInputFile Example</h3>
 
    <form enctype="multipart/form-data" 
          runat="server">
 
       Select File to Upload: 
       <input id="File1" 
              type="file" 
              runat="server">
 
       <p>
       Save as file name (no path): 
       <input id="Text1" 
              type="text" 
              runat="server">
 
       </p>
       <p>
       <span id=Span1 
             style="font: 8pt verdana;" 
             runat="server" />
 
       </p>
       <p>
       <input type=button 
              id="Button1" 
              value="Upload" 
              onserverclick="Button1_Click" 
              runat="server">
 
       </p>
    </form>
 
 </body>
 </html>
   

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
   System.Web.UI.Control
     System.Web.UI.HtmlControls.HtmlControl
       System.Web.UI.HtmlControls.HtmlInputControl
        System.Web.UI.HtmlControls.HtmlInputFile

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

HtmlInputFile-Member
System.Web.UI.HtmlControls-Namespace
HttpPostedFile
PostedFile
HtmlInputControl-Klasse
HtmlForm.Enctype-Eigenschaft

Weitere Ressourcen

httpRuntime-Element (ASP.NET-Einstellungsschema)
processModel-Element (ASP.NET-Einstellungsschema)
HTML-Serversteuerelemente
Computerkonfigurationsdateien