Personas que lo han encontrado útil: 1 de 2 - Valorar este tema

FileUpload (Clase)

Muestra un control de cuadro de texto y un botón Examinar que permiten a los usuarios seleccionar un archivo para cargarlo al servidor.

System.Object
  System.Web.UI.Control
    System.Web.UI.WebControls.WebControl
      System.Web.UI.WebControls.FileUpload

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)
[ValidationPropertyAttribute("FileName")]
[ControlValuePropertyAttribute("FileBytes")]
public class FileUpload : WebControl
<asp:FileUpload />

El tipo FileUpload expone los siguientes miembros.

  Nombre Descripción
Método público FileUpload Inicializa una nueva instancia de la clase FileUpload.
Arriba
  Nombre Descripción
Propiedad pública AccessKey Obtiene o establece la clave de acceso que permite navegar rápidamente al control de servidor web. (Se hereda de WebControl).
Propiedad protegida Adapter Obtiene el adaptador específico del explorador para el control. (Se hereda de Control).
Propiedad pública AppRelativeTemplateSourceDirectory Obtiene o establece el directorio virtual relativo a la aplicación del objeto Page o el objeto UserControl que contiene este control. (Se hereda de Control).
Propiedad pública Attributes Obtiene la colección de atributos arbitrarios (sólo para su representación) que no corresponden a propiedades del control. (Se hereda de WebControl).
Propiedad pública BackColor Obtiene o establece el color de fondo del control de servidor web. (Se hereda de WebControl).
Propiedad pública BindingContainer Infraestructura. Obtiene el control que contiene el enlace de datos de este control. (Se hereda de Control).
Propiedad pública BorderColor Obtiene o establece el color de borde del control Web. (Se hereda de WebControl).
Propiedad pública BorderStyle Obtiene o establece el estilo del borde del control de servidor web. (Se hereda de WebControl).
Propiedad pública BorderWidth Obtiene o establece el ancho del borde del control de servidor web. (Se hereda de WebControl).
Propiedad protegida ChildControlsCreated Obtiene un valor que indica si se han creado controles secundarios del control de servidor. (Se hereda de Control).
Propiedad pública ClientID Obtiene el identificador de control del formato HTML generado por ASP.NET. (Se hereda de Control).
Propiedad pública ClientIDMode Obtiene o establece el algoritmo que se utiliza para generar el valor de la propiedad ClientID. (Se hereda de Control).
Propiedad protegida ClientIDSeparator Obtiene un valor de carácter que representa el carácter separado utilizado en la propiedad ClientID. (Se hereda de Control).
Propiedad protegida Context Obtiene el objeto HttpContext asociado al control de servidor para la solicitud Web actual. (Se hereda de Control).
Propiedad pública Controls Obtiene un objeto ControlCollection que representa los controles secundarios para un control de servidor especificado en la jerarquía de la interfaz de usuario. (Se hereda de Control).
Propiedad pública ControlStyle Obtiene el estilo del control de servidor web. Esta propiedad la usan principalmente los programadores de controles. (Se hereda de WebControl).
Propiedad pública ControlStyleCreated Obtiene un valor que indica si se ha creado un objeto Style para la propiedad ControlStyle. Esta propiedad la usan principalmente los programadores de controles. (Se hereda de WebControl).
Propiedad pública CssClass Obtiene o establece la clase hoja de estilo en cascada (CSS) presentada por el control de servidor web en el cliente. (Se hereda de WebControl).
Propiedad pública DataItemContainer Obtiene una referencia al contenedor de nomenclatura si este implementa IDataItemContainer. (Se hereda de Control).
Propiedad pública DataKeysContainer Obtiene una referencia al contenedor de nomenclatura si este implementa IDataKeysControl. (Se hereda de Control).
Propiedad protegida DesignMode Obtiene un valor que indica si se está utilizando un control en una superficie de diseño. (Se hereda de Control).
Propiedad pública Enabled Obtiene o establece un valor que indica si el control de servidor web está habilitado. (Se hereda de WebControl).
Propiedad pública EnableTheming Obtiene o establece un valor que indica si los temas se aplican a este control. (Se hereda de WebControl).
Propiedad pública EnableViewState Obtiene o establece un valor que indica si el control de servidor debe mantener su estado de vista y el de los controles secundarios que contiene, en el cliente que realiza la solicitud. (Se hereda de Control).
Propiedad protegida Events Obtiene una lista de delegados de controladores de eventos del control. Esta propiedad es de sólo lectura. (Se hereda de Control).
Propiedad pública FileBytes Obtiene una matriz de los bytes de un archivo que se especifica mediante un control FileUpload.
Propiedad pública FileContent Obtiene un objeto Stream que señala a un archivo para cargarlo utilizando el control FileUpload.
Propiedad pública FileName Obtiene el nombre de un archivo en un cliente que se cargará con el control FileUpload.
Propiedad pública Font Obtiene las propiedades de fuente asociadas al control de servidor web. (Se hereda de WebControl).
Propiedad pública ForeColor Obtiene o establece el color de primer plano (normalmente el color del texto) del control de servidor web. (Se hereda de WebControl).
Propiedad pública HasAttributes Obtiene un valor que indica si el control tiene establecido algún atributo. (Se hereda de WebControl).
Propiedad protegida HasChildViewState Obtiene un valor que indica si los controles secundarios del control de servidor actual tienen guardada alguna configuración del estado de vista. (Se hereda de Control).
Propiedad pública HasFile Obtiene un valor que indica si el control FileUpload contiene un archivo.
Propiedad pública Height Obtiene o establece el alto del control de servidor Web. (Se hereda de WebControl).
Propiedad pública ID Obtiene o establece el identificador de programación asignado al control de servidor. (Se hereda de Control).
Propiedad protegida IdSeparator Infraestructura. Obtiene el carácter utilizado para separar los identificadores de control. (Se hereda de Control).
Propiedad protegida IsChildControlStateCleared Obtiene un valor que indica si los controles que se encuentran en este control tienen estado de control. (Se hereda de Control).
Propiedad protegida IsEnabled Obtiene un valor que indica si está habilitado el control. (Se hereda de WebControl).
Propiedad protegida IsTrackingViewState Obtiene un valor que indica si el control de servidor está guardando los cambios realizados en su estado de vista. (Se hereda de Control).
Propiedad protegida IsViewStateEnabled Obtiene un valor que indica si el estado de vista está habilitado para este control. (Se hereda de Control).
Propiedad protegida LoadViewStateByID Obtiene un valor que indica si el control participa en la carga de su estado de vista mediante ID en lugar de índice. (Se hereda de Control).
Propiedad pública NamingContainer Obtiene una referencia al contenedor de nomenclatura del control de servidor, que crea un espacio de nombres único para diferenciar los distintos controles de servidor que tienen el mismo valor para la propiedad Control.ID. (Se hereda de Control).
Propiedad pública Page Obtiene una referencia a la instancia Page que contiene el control de servidor. (Se hereda de Control).
Propiedad pública Parent Obtiene una referencia al control principal del control de servidor en la jerarquía de controles de página. (Se hereda de Control).
Propiedad pública PostedFile Obtiene el objeto HttpPostedFile subyacente para un archivo que se carga utilizando el control FileUpload.
Propiedad pública RenderingCompatibility Obtiene o establece un valor que especifica la versión de ASP.NET compatible con los elementos HTML representados. (Se hereda de Control).
Propiedad pública Site Obtiene información sobre el contenedor en que se encuentra el control actual cuando se representa en una superficie de diseño. (Se hereda de Control).
Propiedad pública SkinID Obtiene o establece la máscara que se va a aplicar al control. (Se hereda de WebControl).
Propiedad pública Style Obtiene una colección de atributos de texto que se representan como atributo de estilo en la etiqueta externa del control de servidor web. (Se hereda de WebControl).
Propiedad pública SupportsDisabledAttribute Obtiene un valor que indica si el control debe establecer en "disabled" el atributo disabled del elemento HTML presentado cuando el valor de la propiedad IsEnabled del control es false. (Se hereda de WebControl).
Propiedad pública TabIndex Obtiene o establece el índice de tabulación del control de servidor web. (Se hereda de WebControl).
Propiedad protegida TagKey Obtiene el valor HtmlTextWriterTag correspondiente a este control de servidor web. Esta propiedad la usan principalmente los programadores de controles. (Se hereda de WebControl).
Propiedad protegida TagName Obtiene el nombre de la etiqueta del control. Esta propiedad la usan principalmente los programadores de controles. (Se hereda de WebControl).
Propiedad pública TemplateControl Obtiene o establece una referencia a la plantilla que contiene este control. (Se hereda de Control).
Propiedad pública TemplateSourceDirectory Obtiene el directorio virtual de Page o UserControl que contiene el control de servidor actual. (Se hereda de Control).
Propiedad pública ToolTip Obtiene o establece el texto que se muestra cuando el puntero del mouse se desplaza sobre el control de servidor web. (Se hereda de WebControl).
Propiedad pública UniqueID Obtiene el identificador único calificado jerárquicamente para el control de servidor. (Se hereda de Control).
Propiedad protegida ViewState Obtiene un diccionario con información de estado que le permite guardar y restaurar el estado de vista de un control de servidor en las distintas solicitudes de la misma página. (Se hereda de Control).
Propiedad protegida ViewStateIgnoresCase Obtiene un valor que indica si el objeto StateBag no distingue mayúsculas de minúsculas. (Se hereda de Control).
Propiedad pública ViewStateMode Obtiene o establece el modo del estado de vista de este control. (Se hereda de Control).
Propiedad pública Visible Obtiene o establece un valor que indica si un control de servidor se debe representar como interfaz de usuario en la página. (Se hereda de Control).
Propiedad pública Width Obtiene o establece el ancho del control de servidor web. (Se hereda de WebControl).
Arriba
  Nombre Descripción
Método protegido AddAttributesToRender Agrega los atributos y estilos HTML de un control FileUpload para procesarlos en el objeto System.Web.UI.HtmlTextWriter especificado. (Invalida a WebControl.AddAttributesToRender(HtmlTextWriter)).
Método protegido AddedControl Se le llama una vez que se ha agregado un control secundario a la colección Controls del Control objeto. (Se hereda de Control).
Método protegido AddParsedSubObject Indica al control de servidor que se ha analizado un elemento, ya sea XML o HTML, y agrega dicho elemento al objeto ControlCollection del control de servidor. (Se hereda de Control).
Método público ApplyStyle Copia en el control Web todos los elementos no vacíos del estilo especificado, sobrescribiendo los elementos de estilo existentes del mismo. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método público ApplyStyleSheetSkin Aplica al control las propiedades de estilo definidas en la hoja de estilos de la página. (Se hereda de Control).
Método protegido BuildProfileTree Infraestructura. Recopila información sobre el control de servidor y la pasa a la propiedad Trace para que se muestre cuando está habilitada la traza de la página. (Se hereda de Control).
Método protegido ClearCachedClientID Infraestructura. Establece en null el valor de ClientID almacenado en caché. (Se hereda de Control).
Método protegido ClearChildControlState Elimina la información sobre el estado de control de los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearChildState Elimina la información sobre el estado de vista y el estado de control de los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearChildViewState Elimina la información sobre el estado de vista de todos los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearEffectiveClientIDMode Infraestructura. Establece la propiedad ClientIDMode de la instancia del control actual y de cualquier control secundario en Inherit. (Se hereda de Control).
Método público CopyBaseAttributes Copia las propiedades no encapsuladas por el objeto Style del control de servidor web especificado al control de servidor web desde el que se efectúa la llamada al método. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método protegido CreateChildControls Lo llama el marco de trabajo de las páginas ASP.NET para indicar a los controles de servidor que utilizan la implementación basada en la composición que creen los controles secundarios que contengan como forma de preparar la devolución o representación de los datos. (Se hereda de Control).
Método protegido CreateControlCollection Crea un nuevo objeto ControlCollection para guardar los controles secundarios (tanto literales como de servidor) del control de servidor. (Se hereda de Control).
Método protegido CreateControlStyle Crea el objeto de estilo que utiliza la clase WebControl de forma interna para implementar todas las propiedades relacionadas con el estilo. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método público DataBind() Enlaza un origen de datos al control de servidor invocado y a todos sus controles secundarios. (Se hereda de Control).
Método protegido DataBind(Boolean) Enlaza un origen de datos al control de servidor que se ha invocado y a todos sus controles secundarios con una opción para generar el evento DataBinding. (Se hereda de Control).
Método protegido DataBindChildren Enlaza un origen de datos a los controles secundarios del control de servidor. (Se hereda de Control).
Método público Dispose Habilita un control de servidor para que realice la limpieza final antes de que se libere de la memoria. (Se hereda de Control).
Método protegido EnsureChildControls Determina si el control de servidor contiene controles secundarios. Si no tiene controles secundarios, los crea. (Se hereda de Control).
Método protegido EnsureID Crea un identificador para controles que no tiene un identificador asignado. (Se hereda de Control).
Método público Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público FindControl(String) Busca un control de servidor con el parámetro id especificado en el contenedor de nomenclatura actual. (Se hereda de Control).
Método protegido FindControl(String, Int32) Infraestructura. Busca el contenedor de nomenclatura actual para un control de servidor con el id especificado y un entero, que se especifica en el parámetro pathOffset, que ayuda a realizar la búsqueda. Esta versión del método FindControl no se debe reemplazar. (Se hereda de Control).
Método público Focus Establece el foco de entrada en un control. (Se hereda de Control).
Método protegido GetDesignModeState Infraestructura. Obtiene datos en tiempo de diseño para un control. (Se hereda de Control).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetRouteUrl(Object) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta. (Se hereda de Control).
Método público GetRouteUrl(RouteValueDictionary) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta. (Se hereda de Control).
Método público GetRouteUrl(String, Object) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta. (Se hereda de Control).
Método público GetRouteUrl(String, RouteValueDictionary) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta. (Se hereda de Control).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público GetUniqueIDRelativeTo Devuelve la parte correspondiente al prefijo de la propiedad UniqueID del control especificado. (Se hereda de Control).
Método público HasControls Determina si el control de servidor contiene controles secundarios. (Se hereda de Control).
Método protegido HasEvents Devuelve un valor que indica si se registran eventos para el control o los controles secundarios. (Se hereda de Control).
Método protegido IsLiteralContent Infraestructura. Determina si el control de servidor alberga únicamente contenido literal. (Se hereda de Control).
Método protegido LoadControlState Restaura información de estado de control de una solicitud de página anterior guardada por el método SaveControlState. (Se hereda de Control).
Método protegido LoadViewState Restaura la información de estado de vista de una solicitud anterior guardada con el método SaveViewState. (Se hereda de WebControl).
Método protegido MapPathSecure Recupera la ruta de acceso física a la que se asigna una ruta de acceso virtual, absoluta o relativa. (Se hereda de Control).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público MergeStyle Copia en el control Web todos los elementos no vacíos del estilo especificado, pero no sobrescribe los elementos de estilo existentes en el mismo. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método protegido OnBubbleEvent Determina si el evento del control de servidor debe pasarse a la jerarquía de controles de servidor de la interfaz de usuario de la página. (Se hereda de Control).
Método protegido OnDataBinding Provoca el evento DataBinding. (Se hereda de Control).
Método protegido OnInit Provoca el evento Init. (Se hereda de Control).
Método protegido OnLoad Provoca el evento Load. (Se hereda de Control).
Método protegido OnPreRender Provoca el evento PreRender para el control FileUpload. (Invalida a Control.OnPreRender(EventArgs)).
Método protegido OnUnload Provoca el evento Unload. (Se hereda de Control).
Método protegido OpenFile Obtiene un objeto Stream utilizado para leer un archivo. (Se hereda de Control).
Método protegido RaiseBubbleEvent Asigna los orígenes del evento y su información al control principal del control. (Se hereda de Control).
Método protegido RemovedControl Se le llama una vez que se ha quitado un control secundario de la colección Controls del Control objeto. (Se hereda de Control).
Método protegido Render Envía el contenido del control FileUpload al objeto System.Web.UI.HtmlTextWriter especificado, que escribe el contenido a procesar en el cliente. (Invalida a WebControl.Render(HtmlTextWriter)).
Método público RenderBeginTag Presenta la etiqueta HTML de apertura del control en el sistema de escritura especificado. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método protegido RenderChildren Envía el contenido del control secundario del control de servidor a un objeto HtmlTextWriter suministrado, que escribe el contenido que se va a representar en el cliente. (Se hereda de Control).
Método protegido RenderContents Presenta el contenido del control en el sistema de escritura especificado. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método público RenderControl(HtmlTextWriter) Envía el contenido del control de servidor a un objeto HtmlTextWriter que se proporciona y almacena la información de traza sobre el control si dicha traza está habilitada. (Se hereda de Control).
Método protegido RenderControl(HtmlTextWriter, ControlAdapter) Coloca el contenido de un control de servidor en un objeto HtmlTextWriter proporcionado, utilizando un objeto ControlAdapter proporcionado. (Se hereda de Control).
Método público RenderEndTag Presenta la etiqueta HTML de cierre del control en el escritor especificado. Este método lo usan principalmente los programadores de controles. (Se hereda de WebControl).
Método protegido ResolveAdapter Obtiene el adaptador de controles que se encarga de representar el control especificado. (Se hereda de Control).
Método público ResolveClientUrl Obtiene una dirección URL que el explorador puede utilizar. (Se hereda de Control).
Método público ResolveUrl Convierte una dirección URL en una que el cliente solicitante pueda utilizar. (Se hereda de Control).
Método público SaveAs Guarda el contenido de un archivo cargado en una ruta de acceso especificada en el servidor web.
Método protegido SaveControlState Guarda los cambios de estado de un control de servidor que se hayan producido desde el momento en que se devolvieron al servidor los datos de la página. (Se hereda de Control).
Método protegido SaveViewState Guarda cualquier estado modificado después de invocar el método TrackViewState. (Se hereda de WebControl).
Método protegido SetDesignModeState Establece datos en tiempo de diseño para un control. (Se hereda de Control).
Método público SetRenderMethodDelegate Infraestructura. Asigna un delegado de controlador de eventos para representar el control de servidor y su contenido en el control principal. (Se hereda de Control).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método protegido TrackViewState Hace que el control efectúe un seguimiento de los cambios de su estado de vista para que se puedan almacenar en la propiedad ViewState del objeto. (Se hereda de WebControl).
Arriba
  Nombre Descripción
Evento público DataBinding Se produce cuando el control de servidor se enlaza a un origen de datos. (Se hereda de Control).
Evento público Disposed Se produce cuando un control de servidor se libera de la memoria, lo que constituye la última fase del período de duración de un control de servidor cuando se solicita una página ASP.NET. (Se hereda de Control).
Evento público Init Tiene lugar al inicializar el control de servidor, que es el primer paso en su ciclo de vida. (Se hereda de Control).
Evento público Load Se produce cuando el control de servidor se carga en el objeto Page. (Se hereda de Control).
Evento público PreRender Se produce una vez que se carga el objeto Control, pero antes de su representación. (Se hereda de Control).
Evento público Unload Se produce cuando el control de servidor se descarga de la memoria. (Se hereda de Control).
Arriba
  Nombre Descripción
Método de extensión público FindDataSourceControl Devuelve el origen de datos que está asociado al control de datos del control especificado. (Definido por DynamicDataExtensions).
Método de extensión público FindFieldTemplate Devuelve la plantilla de campo para la columna especificada en el contenedor de nomenclatura del control especificado. (Definido por DynamicDataExtensions).
Método de extensión público FindMetaTable Devuelve el objeto de metatabla para el control de datos contenedor. (Definido por DynamicDataExtensions).
Arriba
  Nombre Descripción
Implementación explícita de interfaces Método privado IAttributeAccessor.GetAttribute Infraestructura. Obtiene un atributo del control Web con el nombre especificado. (Se hereda de WebControl).
Implementación explícita de interfaces Método privado IAttributeAccessor.SetAttribute Establece un atributo del control Web con el nombre y el valor especificados. (Se hereda de WebControl).
Implementación explícita de interfaces Propiedad privada IControlBuilderAccessor.ControlBuilder Para obtener una descripción de este miembro, vea IControlBuilderAccessor.ControlBuilder. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.GetDesignModeState Para obtener una descripción de este miembro, vea IControlDesignerAccessor.GetDesignModeState. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.SetDesignModeState Para obtener una descripción de este miembro, vea IControlDesignerAccessor.SetDesignModeState. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.SetOwnerControl Infraestructura. Para obtener una descripción de este miembro, vea IControlDesignerAccessor.SetOwnerControl. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IControlDesignerAccessor.UserData Para obtener una descripción de este miembro, vea IControlDesignerAccessor.UserData. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IDataBindingsAccessor.DataBindings Para obtener una descripción de este miembro, vea IDataBindingsAccessor.DataBindings. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IDataBindingsAccessor.HasDataBindings Para obtener una descripción de este miembro, vea IDataBindingsAccessor.HasDataBindings. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IExpressionsAccessor.Expressions Para obtener una descripción de este miembro, vea IExpressionsAccessor.Expressions. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IExpressionsAccessor.HasExpressions Para obtener una descripción de este miembro, vea IExpressionsAccessor.HasExpressions. (Se hereda de Control).
Implementación explícita de interfaces Método privado IParserAccessor.AddParsedSubObject Para obtener una descripción de este miembro, vea IParserAccessor.AddParsedSubObject. (Se hereda de Control).
Arriba

En este tema:

Introduction

La clase FileUpload muestra un control de cuadro de texto y un botón Examinar que permiten a los usuarios seleccionar un archivo en el cliente y cargarlo en el servidor web. El usuario especifica el archivo que desea cargar escribiendo su ruta de acceso completa en el equipo local (por ejemplo, C:\MisArchivos\ArchivoPrueba.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 archivo.

Utilice la propiedad FileName para obtener el nombre de un archivo de un cliente que desee cargar utilizando el control FileUpload. El nombre de archivo que devuelve esta propiedad no incluye la ruta de acceso del archivo en el cliente.

La propiedad FileContent obtiene un objeto Stream que señala a un archivo para cargarlo. Utilice esta propiedad para obtener acceso al contenido del archivo en forma de bytes. Por ejemplo, puede usar el objeto Stream devuelto por la propiedad FileContent para leer el contenido del archivo en forma de bytes y almacenarlo en una matriz de bytes. O bien, puede utilizar la propiedad FileBytes para recuperar todos los bytes del archivo.

La propiedad PostedFile obtiene el objeto HttpPostedFile subyacente para el archivo que se va a cargar. Puede utilizar esta propiedad para tener acceso a otras propiedades del archivo. La propiedad ContentLength obtiene la longitud del archivo. La propiedad ContentType obtiene el tipo de contenido MIME del archivo. También puede utilizar la propiedad PostedFile para obtener acceso a la propiedad FileName, la propiedad InputStream y el método SaveAs. Por otro lado, la propiedad FileName, la propiedad FileContent y el método SaveAs proporcionan la misma funcionalidad.

Guardando archivos cargados

El control FileUpload no guarda automáticamente un archivo en el servidor después de que el usuario lo seleccione para cargarlo. Debe proporcionar explícitamente un control o un mecanismo que permita al usuario enviar el archivo especificado. Por ejemplo, proporcione un botón donde el usuario pueda hacer clic para cargar el archivo. El código que escriba para guardar el archivo especificado debe llamar al método SaveAs, que guarda el contenido de un archivo en una ruta especificada del servidor. Normalmente, se llama al método SaveAs en un método de control de eventos para un evento que inicia una devolución de datos al servidor. Por ejemplo, si se proporciona un botón para enviar un archivo, podría incluir el código para guardar el archivo en el método de control de eventos del evento clic.

Antes de llamar al método SaveAs para guardar el archivo en el servidor, compruebe por medio de la propiedad HasFile si el control FileUpload contiene un archivo. Si la propiedad HasFile devuelve true, llame al método SaveAs. Si devuelve false, muestra un mensaje al usuario que indica que el control no contiene un archivo. No compruebe la propiedad PostedFile para averiguar si existe un archivo para cargar, porque esta propiedad contiene de manera predeterminada 0 bytes. Como consecuencia, la propiedad PostedFile devuelve un valor no nulo aunque el control FileUpload esté en blanco.

Consideraciones de seguridad

Cuando llame al método SaveAs, especifique la ruta de acceso completa del directorio en el que deba guardarse el archivo cargado. Si no especifica explícitamente una ruta de acceso en el código de su aplicación, se producirá una excepción cuando un usuario intente cargar un archivo. Este comportamiento ayuda a mantener seguros los archivos del servidor, al impedir que los usuarios puedan escribir en ubicaciones arbitrarias de la estructura de directorios de la aplicación y, a la vez, evitar el acceso a los directorios raíz confidenciales.

El método SaveAs escribe el archivo cargado en el directorio especificado. Por consiguiente, la aplicación ASP.NET debe tener derechos de escritura en el directorio del servidor. La aplicación dispone de dos medios para obtener acceso de escritura. Se puede conceder explícitamente derecho de escritura a la cuenta en que se está ejecutando la aplicación, en el directorio en que se van a guardar los archivos cargados. Si se prefiere, se puede aumentar el nivel de confianza que se concede a la aplicación ASP.NET. Para obtener acceso de escritura al directorio de ejecución de la aplicación, ésta debe otorgar al objeto AspNetHostingPermission un nivel de confianza establecido en el valor AspNetHostingPermissionLevel.Medium. Un aumento del nivel de confianza aumenta el acceso de la aplicación a los recursos del servidor. Tenga en cuenta que esta estrategia no es segura, puesto que un usuario malintencionado que se haga con el control de la aplicación también podrá trabajar con este nivel de confianza superior. El procedimiento recomendado es ejecutar una aplicación ASP.NET en el contexto de un usuario con los privilegios mínimos necesarios para que se ejecute la aplicación. Para obtener más información acerca de la seguridad en aplicaciones ASP.NET, vea Procedimientos de seguridad básicos para aplicaciones web y Niveles de confianza y archivos de directivas de ASP.NET.

Limitaciones de la memoria

Un procedimiento para protegerse de los ataques por denegación de servicio consiste en limitar el tamaño de los archivos que pueden cargarse por medio del control FileUpload. Establezca un límite de tamaño que sea adecuado para los tipos de archivos que prevea que se cargarán. El límite de tamaño predeterminado es 4096 kilobytes (KB) o 4 megabytes (MB). Puede permitir la carga de archivos mayores estableciendo el atributo maxRequestLength del elemento httpRuntime. Para aumentar el tamaño máximo de archivo permitido para la aplicación completa, defina el atributo maxRequestLength en el archivo Web.config. Para aumentar el tamaño máximo de archivo permitido para una página determinada, defina el atributo maxRequestLength en el elemento location del archivo Web.config. Para obtener un ejemplo, vea Elemento location (Esquema de configuración de ASP.NET).

Durante la carga de archivos grandes, un usuario también podría recibir el mensaje de error siguiente:

aspnet_wp.exe (PID: 1520) was recycled because memory consumption exceeded 460 MB (60 percent of available RAM).

Si los usuarios reciben este mensaje de error, aumente el valor del atributo memoryLimit en processModel del elemento del archivo Web.config de la aplicación. El atributo memoryLimit especifica la cantidad de memoria máxima que puede utilizar un proceso de trabajo. Si el proceso de trabajo rebasa la cantidad especificada por memoryLimit, se crea un proceso nuevo para reemplazarlo, y se reasignan todas las solicitudes actuales al nuevo proceso.

Puede controlar si el archivo cargado se almacena temporalmente en la memoria o en el servidor, mientras se procesa la solicitud, estableciendo el atributo requestLengthDiskThreshold del elemento httpRuntime. Este atributo permite administrar el tamaño del búfer del flujo de entrada. El valor predeterminado es 256 bytes. El valor especificado no debe superar el valor especificado para el atributo maxRequestLength.

Utilizar el control FileUpload con el control UpdatePanel

El control FileUpload está diseñado para usarse solo en escenarios de postback y no de postback asincrónico durante la presentación parcial de páginas. Cuando se usa un control FileUpload dentro de un control UpdatePanel, el archivo se debe cargar usando un control que sea un objeto PostBackTrigger para el panel. Los controles UpdatePanel se usan para actualizar regiones seleccionadas de una página en lugar de actualizar la página entera 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.

Sintaxis de la declaración

<asp:FileUpload
    AccessKey="string"
    BackColor="color name|#dddddd"
    BorderColor="color name|#dddddd"
    BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
        Inset|Outset"
    BorderWidth="size"
    CssClass="string"
    Enabled="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    Font-Bold="True|False"
    Font-Italic="True|False"
    Font-Names="string"
    Font-Overline="True|False"
    Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
        Large|X-Large|XX-Large"
    Font-Strikeout="True|False"
    Font-Underline="True|False"
    ForeColor="color name|#dddddd"
    Height="size"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
    SkinID="string"
    Style="string"
    TabIndex="integer"
    ToolTip="string"
    Visible="True|False"
    Width="size"
/>

Hay un proyecto de sitio web de Visual Studio con código fuente disponible para este tema: Descargar.

Esta sección contiene los cuatro ejemplos siguientes:

  • En el primer ejemplo se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso que se especifica en el código.

  • En el segundo ejemplo se muestra cómo crear un control FileUpload que guarda los archivos en un directorio especificado del sistema de archivos de la aplicación.

  • En el tercer ejemplo se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso especificada y limita el tamaño de los archivos que pueden cargarse.

  • En el cuarto ejemplo se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso especificada y sólo permite cargar archivos con la extensión .doc o .xls.

Nota de precaución Precaución

Estos ejemplos muestran la sintaxis básica del control FileUpload, pero no todos los procedimientos de comprobación de errores necesarios que deben realizarse antes de guardar el archivo. Para obtener un ejemplo más completo, vea SaveAs.

En el ejemplo siguiente se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso que se especifica en el código. Se llama al método SaveAs para guardar el archivo en el servidor en la ruta de acceso especificada.


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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server">

  protected void UploadButton_Click(object sender, EventArgs e)
  {
    // Specify the path on the server to
    // save the uploaded file to.
    String savePath = @"c:\temp\uploads\";

    // Before attempting to perform operations
    // on the file, verify that the FileUpload 
    // control contains a file.
    if (FileUpload1.HasFile)
    {
      // Get the name of the file to upload.
      String fileName = FileUpload1.FileName;

      // Append the name of the file to upload to the path.
      savePath += fileName;


      // Call the SaveAs method to save the 
      // uploaded file to the specified path.
      // This example does not perform all
      // the necessary error checking.               
      // If a file with the same name
      // already exists in the specified path,  
      // the uploaded file overwrites it.
      FileUpload1.SaveAs(savePath);

      // Notify the user of the name of the file
      // was saved under.
      UploadStatusLabel.Text = "Your file was saved as " + fileName;
    }
    else
    {      
      // Notify the user that a file was not uploaded.
      UploadStatusLabel.Text = "You did not specify a file to upload.";
    }

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>FileUpload Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <h4>Select a file to upload:</h4>

       <asp:FileUpload id="FileUpload1"                 
           runat="server">
       </asp:FileUpload>

       <br /><br />

       <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>    

       <hr />

       <asp:Label id="UploadStatusLabel"
           runat="server">
       </asp:Label>        
    </div>
    </form>
</body>
</html>


En el ejemplo siguiente se muestra cómo crear un control FileUpload que guarda los archivos en un directorio especificado del sistema de archivos de la aplicación. La propiedad HttpRequest.PhysicalApplicationPath permite obtener la ruta física del sistema de archivos del directorio raíz para la aplicación de servidor actualmente ejecutada. Se llama al método SaveAs para guardar el archivo en el servidor en la ruta de acceso especificada.


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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void UploadButton_Click(object sender, EventArgs e)
    {
        // Save the uploaded file to an "Uploads" directory
        // that already exists in the file system of the 
        // currently executing ASP.NET application.  
        // Creating an "Uploads" directory isolates uploaded 
        // files in a separate directory. This helps prevent
        // users from overwriting existing application files by
        // uploading files with names like "Web.config".
        string saveDir = @"\Uploads\";

        // Get the physical file system path for the currently
        // executing application.
        string appPath = Request.PhysicalApplicationPath;

        // Before attempting to save the file, verify
        // that the FileUpload control contains a file.
        if (FileUpload1.HasFile)
        {
            string savePath = appPath + saveDir +
                Server.HtmlEncode(FileUpload1.FileName);

            // Call the SaveAs method to save the 
            // uploaded file to the specified path.
            // This example does not perform all
            // the necessary error checking.               
            // If a file with the same name
            // already exists in the specified path,  
            // the uploaded file overwrites it.
            FileUpload1.SaveAs(savePath);

            // Notify the user that the file was uploaded successfully.
            UploadStatusLabel.Text = "Your file was uploaded successfully.";

        }
        else
        {
            // Notify the user that a file was not uploaded.
            UploadStatusLabel.Text = "You did not specify a file to upload.";   
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>FileUpload Class Example</title>
</head>
<body>
    <h3>FileUpload Class Example: Save To Application Directory</h3>
    <form id="form1" runat="server">
    <div>
       <h4>Select a file to upload:</h4>

       <asp:FileUpload id="FileUpload1"                 
           runat="server">
       </asp:FileUpload>

       <br/><br/>

       <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>    

       <hr />

       <asp:Label id="UploadStatusLabel"
           runat="server">
       </asp:Label>           
    </div>
    </form>
</body>
</html>


En el ejemplo siguiente se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso que se especifica en el código. El control limita el tamaño de archivo que se puede cargar a 5 MB. La propiedad PostedFile se utiliza para obtener acceso a la propiedad ContentLength subyacente y devolver el tamaño del archivo. Si el tamaño del archivo que se carga es inferior a 2 MB, se llama al método SaveAs para guardarlo en la ruta especificada del servidor. Además de comprobar la configuración de tamaño máximo de archivo en el código de la aplicación, puede establecer el atributo maxRequestLength del elemento httpRuntime en un tamaño máximo permitido, en el archivo de configuración de la aplicación.


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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void UploadButton_Click(object sender, EventArgs e)
    {
        // Specify the path on the server to
        // save the uploaded file to.
        string savePath = @"c:\temp\uploads\";

        // Before attempting to save the file, verify
        // that the FileUpload control contains a file.
        if (FileUpload1.HasFile)
        {                
            // Get the size in bytes of the file to upload.
            int fileSize = FileUpload1.PostedFile.ContentLength;

            // Allow only files less than 2,100,000 bytes (approximately 2 MB) to be uploaded.
            if (fileSize < 2100000)
            {

                // Append the name of the uploaded file to the path.
                savePath += Server.HtmlEncode(FileUpload1.FileName);

                // Call the SaveAs method to save the 
                // uploaded file to the specified path.
                // This example does not perform all
                // the necessary error checking.               
                // If a file with the same name
                // already exists in the specified path,  
                // the uploaded file overwrites it.
                FileUpload1.SaveAs(savePath);

                // Notify the user that the file was uploaded successfully.
                UploadStatusLabel.Text = "Your file was uploaded successfully.";
            }
            else
            {
                // Notify the user why their file was not uploaded.
                UploadStatusLabel.Text = "Your file was not uploaded because " + 
                                         "it exceeds the 2 MB size limit.";
            }
        }   
        else
        {
            // Notify the user that a file was not uploaded.
            UploadStatusLabel.Text = "You did not specify a file to upload.";
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>FileUpload Class Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <h4>Select a file to upload:</h4>

       <asp:FileUpload id="FileUpload1"                 
           runat="server">
       </asp:FileUpload>

       <br/><br/>

       <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>

       <hr />

       <asp:Label id="UploadStatusLabel"
           runat="server">
       </asp:Label>

    </div>
    </form>
</body>
</html>


En el ejemplo siguiente se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso que se especifica en el código. Este ejemplo sólo permite cargar archivos con la extensión .doc o .xls. Se llama al método Path.GetExtension para devolver la extensión del archivo que se carga. Si el archivo tiene una extensión .doc o .xls, se llama al método SaveAs para guardarlo en la ruta especificada del servidor.


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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void UploadBtn_Click(object sender, EventArgs e)
    {
        // Specify the path on the server to
        // save the uploaded file to.
        string savePath = @"c:\temp\uploads";

        // Before attempting to save the file, verify
        // that the FileUpload control contains a file.
        if (FileUpload1.HasFile)
        {
            // Get the name of the file to upload.
            string fileName = Server.HtmlEncode(FileUpload1.FileName);

            // Get the extension of the uploaded file.
            string extension = System.IO.Path.GetExtension(fileName);

            // Allow only files with .doc or .xls extensions
            // to be uploaded.
            if ((extension == ".doc") || (extension == ".xls"))
            {
                // Append the name of the file to upload to the path.
                savePath += fileName;

                // Call the SaveAs method to save the 
                // uploaded file to the specified path.
                // This example does not perform all
                // the necessary error checking.               
                // If a file with the same name
                // already exists in the specified path,  
                // the uploaded file overwrites it.
                FileUpload1.SaveAs(savePath);

                // Notify the user that their file was successfully uploaded.
                UploadStatusLabel.Text = "Your file was uploaded successfully.";
            }
            else
            {
                // Notify the user why their file was not uploaded.
                UploadStatusLabel.Text = "Your file was not uploaded because " + 
                                         "it does not have a .doc or .xls extension.";
            }

        }

    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>FileUpload Class Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h4>Select a file to upload:</h4>

        <asp:FileUpload id="FileUpload1"                 
            runat="server">
        </asp:FileUpload>

        <br/><br/>

        <asp:Button id="UploadBtn" 
            Text="Upload file"
            OnClick="UploadBtn_Click"
            runat="server">
        </asp:Button>    

        <hr />

        <asp:Label id="UploadStatusLabel"
            runat="server">
        </asp:Label>     
    </div>
    </form>
</body>
</html>


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
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.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar