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
- AspNetHostingPermission für den Betrieb in einer Hostumgebung. Anforderungswert: LinkDemand, Berechtigungswert: Minimal
- AspNetHostingPermission für den Betrieb in einer Hostumgebung. Anforderungswert: InheritanceDemand, Berechtigungswert: Minimal
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