HtmlInputFile (Clase)

Actualización: noviembre 2007

Permite el acceso mediante programación al elemento HTML <input type= file> del servidor.

Espacio de nombres:  System.Web.UI.HtmlControls
Ensamblado:  System.Web (en System.Web.dll)

[ValidationPropertyAttribute("Value")]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class HtmlInputFile : HtmlInputControl, 
	IPostBackDataHandler
/** @attribute ValidationPropertyAttribute("Value") */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class HtmlInputFile extends HtmlInputControl implements IPostBackDataHandler
public class HtmlInputFile extends HtmlInputControl implements IPostBackDataHandler
<asp:HtmlInputFile />

Utilice el control de servidor HtmlInputFile para controlar la carga de archivos binarios o de texto desde el explorador del cliente hasta el servidor. La carga de archivos funciona con Microsoft Internet Explorer versión 3.02 o posteriores.

czkya88e.alert_note(es-es,VS.90).gifNota:

El control HtmlInputFile está diseñado para utilizarse sólo en escenarios de devolución de datos y no en escenarios de devolución de datos asincrónica durante la representación parcial de la página. Al utilizar un control HtmlInputFile dentro de un control UpdatePanel, el archivo se debe cargar utilizando un control que es un objeto PostBackTrigger del panel. Los controles UpdatePanel se utilizan para actualizar regiones seleccionadas de una página en lugar de actualizar toda la página con una devolución de datos. Para obtener más información, vea Información general sobre el control UpdatePanel y Información general sobre la representación parcial de páginas.

Para especificar el archivo que se va a cargar, indique la ruta de acceso completa al archivo (por ejemplo, "C:\MisArchivos\Test.txt") en el cuadro de texto del control. También puede seleccionar el archivo haciendo clic en el botón Examinar y buscándolo después en el cuadro de diálogo Elegir un archivo.

czkya88e.alert_note(es-es,VS.90).gifNota:

La propiedad Enctype de un control HtmlForm debe establecerse en "multipart/form-data" para que este control funcione correctamente.

El control HtmlInputFile no tiene un medio integrado para efectuar devoluciones al servidor. Para cargar el archivo en el servidor, utilice el método SaveAs del objeto System.Web.HttpPostedFile contenido en la propiedad PostedFile. Esta operación suele realizarse en un método de control de eventos, como hacer clic en un botón.

czkya88e.alert_note(es-es,VS.90).gifNota:

Cuando utilice el método SaveAs de la clase HttpPostedFile, asegúrese de especificar una ruta de acceso con raíz (por ejemplo, "C:\MisArchivos\Test.txt"). El comportamiento del método SaveAs se puede especificar en la sección de configuración de Elemento httpRuntime (Esquema de configuración de ASP.NET) con el atributo requireRootedSaveAsPath. El valor predeterminado de este atributo es true. Si establece este atributo en false y, a continuación, utiliza el método SaveAs sin especificar una ruta de acceso, se intentará colocar el archivo en el directorio systemroot\system32\inetsrv. De manera predeterminada, este directorio está protegido contra escritura. Por lo tanto, no se puede guardar el archivo en dicha ubicación. Asegúrese de proporcionar permiso de escritura a la cuenta usada por ASP.NET para el directorio donde desea almacenar el archivo.

Al cargar archivos grandes, utilice el atributo maxRequestLength del elemento Elemento httpRuntime (Esquema de configuración de ASP.NET) para aumentar el tamaño de archivo máximo permitido. Se genera un error DNS en el explorador cuando el archivo supera el tamaño especificado. Es posible que también reciba el siguiente mensaje de error al cargar archivos grandes:

aspnet_wp.exe (PID: 1520) se ha reciclado porque el consumo de memoria era superior a 460 MB (60 % de la memoria RAM disponible).

Si aparece este mensaje de error, aumente el valor del atributo memoryLimit en el elemento Elemento processModel (Esquema de configuración de ASP.NET) del archivo Machine.config.

Para obtener una lista con los valores de propiedad iniciales de una instancia de HtmlInputFile, vea el constructor de HtmlInputFile.

En el ejemplo de código siguiente se muestra la forma de utilizar el control HtmlInputFile para crear un escenario de carga de archivos simple. Para que este ejemplo funcione correctamente, es necesario crear un directorio denominado Temp en la unidad C del equipo.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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 xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>HtmlInputFile Example</title>
  </head>
 <body>

    <h3>HtmlInputFile Example</h3>

    <form id="form1" 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>


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: