input type=file element | input type=file object
Creates a file upload object with a text box and Browse button.
![]() ![]() |
HTML information
| Closing Tag | forbidden |
|---|---|
| CSS Display | inline |
DOM Information
Inheritance Hierarchy
Members
The input type=file object has these types of members:
Events
The input type=file object has these events.
| Event | Description |
|---|---|
| click |
Fires when the user clicks the left mouse button on the object. Note Starting with IE11, this event fires a MSPointerEvent object instead of MouseEvent. You can use the MouseEvent.pointerType property to determine the type of contact that the click originated from (touch, mouse, or pen).
|
| abort |
Fires when the user aborts the download. |
| activate |
Fires when the object is set as the active element. |
| afterupdate |
Fires on a databound object after successfully updating the associated data in the data source object. |
| beforeactivate |
Fires immediately before the object is set as the active element. |
| beforecopy |
Fires on the source object before the selection is copied to the system clipboard. |
| beforecut |
Fires on the source object before the selection is deleted from the document. |
| beforeeditfocus |
Fires before an object contained in an editable element enters a UI Activation state or when an editable container object is control selection. |
| beforepaste |
Fires on the target object before the selection is pasted from the system clipboard to the document. |
| beforeupdate |
Fires on a databound object before updating the associated data in the data source object. |
| blur |
Fires when the object loses the input focus. |
| cellchange |
Fires when data changes in the data provider. |
| change |
Fires when the contents of the object or selection have changed. |
| contextmenu |
Fires when the user clicks the right mouse button in the client area, opening the context menu. Note Starting with IE11, this event fires a MSPointerEvent object instead of MouseEvent. You can use the MouseEvent.pointerType property to determine the type of contact that the click originated from (touch, mouse, or pen).
|
| controlselect |
Fires when the user is about to make a control selection of the object. |
| cut |
Fires on the source element when the object or selection is removed from the document and added to the system clipboard. |
| dataavailable |
Fires periodically as data arrives from data source objects that asynchronously transmit their data. |
| datasetchanged |
Fires when the data set exposed by a data source object changes. |
| dblclick |
Fires when the user double-clicks the object. Note Starting with IE11, this event fires a MSPointerEvent object instead of a MouseEvent. You can use the MouseEvent.pointerType property to determine the type of contact that the click originated from (touch, mouse, or pen).
|
| deactivate |
Fires when the activeElement is changed from the current object to another object in the parent document. |
| drag |
Fires on the source object continuously during a drag operation. |
| dragend |
Fires on the source object when the user releases the mouse at the close of a drag operation. |
| dragenter |
Fires on the target element when the user drags the object to a valid drop target. |
| dragleave |
Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation. |
| dragover |
Fires on the target element continuously while the user drags the object over a valid drop target. |
| dragstart |
Fires on the source object when the user starts to drag a text selection or selected object. |
| drop |
Fires on the target object when the mouse button is released during a drag-and-drop operation. |
| error |
Fires when an error occurs during object loading. |
| errorupdate |
Fires on a databound object when an error occurs while updating the associated data in the data source object. |
| filterchange |
Fires when a visual filter changes state or completes a transition. |
| focus |
Fires when the object receives focus. |
| focusin |
Fires for an element just prior to setting focus on that element. |
| focusout |
Fires for the current element with focus immediately after moving focus to another element. |
| help |
Fires when the user presses the F1 key while the client is the active window. |
| input |
Occurs when the text content of an element is changed through the user interface. |
| keydown |
Fires when the user presses a key. |
| keypress |
Fires when the user presses an alphanumeric key. |
| layoutcomplete |
Fires when the print or print preview layout process finishes filling the current LayoutRect object with content from the source document. |
| load |
Fires immediately after the client loads the object. |
| losecapture |
Fires when the object loses the mouse capture. |
| mousedown |
Fires when the user clicks the object with either mouse button. |
| mouseenter |
Fires when the user moves the mouse pointer into the object. |
| mouseleave |
Fires when the user moves the mouse pointer outside the boundaries of the object. |
| mousemove |
Fires when the user moves the mouse over the object. |
| mouseout |
Fires when the user moves the mouse pointer outside the boundaries of the object. |
| mouseover |
Fires when the user moves the mouse pointer into the object. |
| mouseup |
Fires when the user releases a mouse button while the mouse is over the object. |
| mousewheel |
Fires when the wheel button is rotated. |
| move |
Fires when the object moves. |
| moveend |
Fires when the object stops moving. |
| movestart |
Fires when the object starts to move. |
| mselementresize |
Fires when certain HTML elements are resized. |
| onbeforedeactivate |
Fires immediately before the activeElement is changed from the current object to another object in the parent document. |
| ondatasetcomplete |
Fires to indicate that all data is available from the data source object. |
| oninvalid |
Provides specified alert text if an input element is invalid. |
| onkeyup |
Fires when the user releases a key. |
| onselect |
Fires when the current selection changes. |
| paste |
Fires on the target object when the user pastes data, transferring the data from the system clipboard to the document. |
| propertychange |
Fires when a property changes on the object. Note The onpropertychange event is only supported in conjunction with the legacy attachEvent IE-only event registration model, which has deprecated since Internet Explorer 9 in favor of the W3C standard "addEventListener" event model.
|
| readystatechange |
Fires when the state of the object has changed. |
| reset |
Fires when the user resets a form. |
| resize |
Fires when the size of the object is about to change. |
| resizeend |
Fires when the user finishes changing the dimensions of the object in a control selection. |
| resizestart |
Fires when the user begins to change the dimensions of the object in a control selection. |
| rowenter |
Fires to indicate that the current row has changed in the data source and new data values are available on the object. |
| rowexit |
Fires just before the data source control changes the current row in the object. |
| rowsdelete |
Fires when rows are about to be deleted from the recordset. |
| rowsinserted |
Fires just after new rows are inserted in the current recordset. |
| scroll |
Fires when the user repositions the scroll box in the scroll bar on the object. |
| selectstart |
Fires when the object is being selected. |
Methods
The input type=file object has these methods.
| Method | Description |
|---|---|
| addBehavior |
Attaches a behavior to the element. |
| appendChild |
Appends an element as a child to the object. |
| applyElement |
Makes the element either a child or parent of another element. |
| attachEvent |
Note
attachEvent is no longer supported. Starting with IE11, use addEventListener. For info, see Compatibility changes.
Binds the specified function to an event, so that the function gets called whenever the event fires on the object. |
| blur |
Causes the element to lose focus and fires the onblur event. |
| clearAttributes |
Removes all attributes and values from the object. |
| click |
Simulates a click by causing the onclick event to fire. |
| cloneNode |
Copies a reference to the object from the document hierarchy. |
| compareDocumentPosition |
Compares the position of two nodes in a document. |
| componentFromPoint |
Returns the component located at the specified coordinates via certain events. |
| contains |
Checks whether the given element is contained within the object. |
| detachEvent |
Unbinds the specified function from the event, so that the function stops receiving notifications when the event fires. |
| doScroll |
Note
doScroll is no longer supported. Starting with IE11, use scrollLeft or scrollTop. For info, see Compatibility changes.
Simulates a click on a scroll bar component. |
| dragDrop |
Initiates a drag event. |
| fireEvent |
Fires a specified event on the object. |
| focus |
Causes the element to receive the focus and executes the code specified by the onfocus event. |
| getAdjacentText |
Returns the adjacent text string. |
| getAttribute |
Retrieves the value of the specified attribute. |
| getAttributeNode |
Retrieves an attribute object referenced by the attribute.name property. |
| getAttributeNodeNS |
Gets an attribute object that matches the specified namespace and name. |
| getAttributeNS |
Gets the value of the specified attribute within the specified namespace. |
| getBoundingClientRect |
Retrieves an object that specifies the bounds of a collection of TextRectangle objects. |
| getClientRects |
Retrieves a collection of rectangles that describes the layout of the contents of an object or range within the client. Each rectangle describes a single line. |
| getElementsByClassName |
Gets a collection of objects that are based on the value of the class attribute. |
| getElementsByTagNameNS |
Gets a collection of objects that are based on the specified element names within a specified namespace. |
| hasAttribute |
Determines whether an attribute with the specified name exists. |
| hasAttributeNS |
Determines whether an attribute that has the specified namespace and name exists. |
| hasAttributes |
Determines whether one or more attributes exist for the object. |
| hasChildNodes |
Returns a value that indicates whether the object has children. |
| insertAdjacentElement |
Inserts an element at the specified location. |
| insertAdjacentHTML |
Inserts the given HTML text into the element at the location. |
| insertAdjacentText |
Inserts the given text into the element at the specified location. |
| insertBefore |
Inserts an element into the document hierarchy as a child node of a parent object. |
| isDefaultNamespace |
Indicates whether or not a namespace is the default namespace for a document. |
| isEqualNode |
Determines if two nodes are equal. |
| isSameNode |
Determines if two node references refer to the same node. |
| isSupported |
Returns a value indicating whether or not the object supports a specific DOM standard. |
| lookupNamespaceURI |
Gets the URI of the namespace associated with a namespace prefix, if any. |
| lookupPrefix |
Gets the namespace prefix associated with a URI, if any. |
| mergeAttributes |
Copies all read/write attributes to the specified element. |
| msMatchesSelector |
Determines whether an object matches the specified selector. |
| normalize |
Merges adjacent DOM objects to produce a normalized document object model. |
| querySelector |
Retrieves the first DOM element node from descendants of the starting element node that match any selector within the supplied selector string. |
| querySelectorAll |
Retrieves all DOM element nodes from descendants of the starting element node that match any selector within the supplied selector strings. |
| releaseCapture |
Removes mouse capture from the object in the current document. |
| removeAttribute |
Removes an attribute from an object. |
| removeAttributeNode |
Removes an attribute object from the object. |
| removeAttributeNS |
Removes the specified attribute from the object. |
| removeBehavior |
Detaches a behavior from the element. |
| removeChild |
Removes a child node from the object. |
| removeNode |
Removes the object from the document hierarchy. |
| replaceAdjacentText |
Replaces the text adjacent to the element. |
| replaceChild |
Replaces an existing child element with a new child element. |
| replaceNode |
Replaces the object with another element. |
| scrollIntoView |
Causes the object to scroll into view, aligning it either at the top or bottom of the window. |
| select |
Highlights the input area of a form element. |
| setActive |
Sets the object as active without setting focus to the object. |
| setAttribute |
Sets the value of the specified attribute. |
| setAttributeNode |
Sets an attribute object node as part of the object. |
| setAttributeNodeNS |
Sets an attribute object as part of the object. |
| setAttributeNS |
Sets the value of the specified attribute within the specified namespace. |
| setCapture |
Sets the mouse capture to the object that belongs to the current document. |
| swapNode |
Exchanges the location of two objects in the document hierarchy. |
Properties
The input type=file object has these properties.
| Property | Access type | Description |
|---|---|---|
|
Sets or retrieves the access key for the object. | ||
|
Specifies whether the element and its contents must be selected as a whole, indivisible unit. | ||
|
Retrieves a collection of attributes of the object. | ||
|
Gets a value indicating whether the object can contain child objects. | ||
|
Retrieves the value indicating whether the object can contain rich HTML markup. | ||
|
Retrieves the number of immediate child nodes of the current element or a zero if the element does not contain any child nodes. childElementCount does not return all child nodes, only child nodes that are nodeType =1, or element nodes. | ||
|
Sets or retrieves the class of the object. | ||
|
Retrieves the height of the object including padding, but not including margin, border, or scroll bar. | ||
|
Retrieves the distance between the offsetLeft property and the true left side of the client area. | ||
|
Retrieves the distance between the offsetTop property and the true top of the client area. | ||
|
Retrieves the width of the object including padding, but not including margin, border, or scroll bar. | ||
|
Sets or retrieves the initial contents of the object. | ||
|
Sets or retrieves the reading order of the object. | ||
|
Sets or retrieves a value that indicates whether the user can interact with the object. | ||
|
Read-only |
Returns a FileList object on a file type input object. | |
|
Gets a reference to the first child in the childNodes collection of the object. | ||
|
Retrieves a reference to the first child element, or NULL if there are no child elements. | ||
|
Retrieves a reference to the form that the object is embedded in. | ||
|
Sets or gets the value that indicates whether the object visibly shows that it has focus. | ||
|
Sets or retrieves the string identifying the object. | ||
|
Sets or retrieves the HTML between the start and end tags of the object. | ||
|
Sets or retrieves the text between the start and end tags of the object. | ||
|
Gets the value that indicates whether the user can edit the contents of the object. | ||
|
Gets the value that indicates whether the user can interact with the object. | ||
|
Retrieves the value indicating whether the content of the object contains one or more lines. | ||
|
Retrieves whether a TextRange object can be created using the object. | ||
|
Sets or retrieves the language to use. | ||
|
Sets or retrieves the language in which the current script is written. Note This has been superceded by the type attribute for the script element. If you are using javascript alone, you don't need to specify a type or language with the script element.
| ||
|
Gets a reference to the last child in the childNodes collection of an object. | ||
|
Retrieves a reference to the last child element or NULL if there are no child elements. | ||
|
Retrieves the local name of the fully qualified XML declaration for a node. | ||
|
Sets or retrieves the name of the object. | ||
|
Retrieves the namespace URI of the fully qualified XML declaration for a node. | ||
|
Retrieves a reference to the sibling element that immediately follows or NULL if the element does not have any sibling elements that follow it. | ||
|
Retrieves a reference to the next child of the parent for the object. | ||
|
Gets the name of a particular type of node. | ||
|
Retrieves the type of the requested node. | ||
|
Gets or sets the value of a node. | ||
|
Retrieves the height of the object relative to the layout or coordinate parent, as specified by the offsetParent property. | ||
|
Retrieves the calculated left position of the object relative to the layout or coordinate parent, as specified by the offsetParent property. | ||
|
Retrieves a reference to the container object that defines the offsetTop and offsetLeft properties of the object. | ||
|
Retrieves the calculated top position of the object relative to the layout or coordinate parent, as specified by the offsetParent property. | ||
|
Retrieves the width of the object relative to the layout or coordinate parent, as specified by the offsetParent property. | ||
|
Sets or retrieves the object and its content in HTML. | ||
|
Sets or retrieves the text of the object. | ||
|
Retrieves the document object associated with the node. | ||
|
Retrieves the parent object in the object hierarchy. | ||
|
Retrieves the parent object in the document hierarchy. | ||
|
Retrieves the container object in the document hierarchy that can be used to create a TextRange containing the original object. | ||
|
Retrieves the local name of the fully qualified XML declaration for a node. | ||
|
Retrieves a reference to the immediately preceding sibling element or NULL if the element does not have any preceding siblings. | ||
|
Gets a reference to the previous child of the parent for the object. | ||
|
Retrieves a value that indicates the current state of the object. | ||
|
Retrieves the ordinal record from the data set that generated the object. | ||
|
Sets or retrieves the role for this element. | ||
|
Gets the namespace defined for the element. This property is not supported for Windows apps using JavaScript. | ||
|
Retrieves the scrolling height of the object. | ||
|
Sets or retrieves the distance between the left edge of the object and the leftmost portion of the content currently visible in the window. | ||
|
Sets or retrieves the distance between the top of the object and the topmost portion of the content currently visible in the window. | ||
|
Retrieves the scrolling width of the object. | ||
|
Sets or retrieves the size of the control. | ||
|
Retrieves the ordinal position of the object, in source order, as the object appears in the document's all collection. | ||
|
Sets an inline style for the element. | ||
|
Sets or retrieves the index that defines the tab order for the object. | ||
|
Retrieves the tag name of the object. | ||
|
Sets or gets the URN specified in the namespace declaration. This property is not supported for Windows apps using JavaScript. | ||
|
Sets or retrieves the text content of an object and any child objects. | ||
|
Sets or retrieves advisory information (a ToolTip) for the object. | ||
|
Retrieves or initially sets the type of input control represented by the object. | ||
|
Retrieves an autogenerated, unique identifier for the object. | ||
|
Retrieves the element's unique number. | ||
|
Sets or retrieves the displayed value for the control object. This value is returned to the server when the control object is submitted. | ||
|
Retrieves the file name of the input object after the text is set by user input. | ||
|
Sets or retrieves the calculated width of the object. |
Standards information
- HTML 4.01 Specification, Section 17.4
- HTML5 A vocabulary and associated APIs for HTML and XHTML, Section 4.10
Remarks
For a file upload to take place:
- The input type=file element must be enclosed within a form element.
- A value must be specified for the name attribute of the input type=file element.
- The methods attribute of the name element must be set to post.
- The enctype attribute of the form element must be set to multipart/form-data.
To handle a file upload to the server, a server-side process must be running that can handle multipart/form-data submissions. For example, the Microsoft Posting Acceptor allows Microsoft Internet Information Server (IIS) to accept file uploads. Additional Common Gateway Interface (CGI) scripts that can handle multipart/form-data submissions are available on the Web.
Windows Internet Explorer 8 and later. When a file is selected by using the input type=file object, the value of the value property depends on the value of the "Include local directory path when uploading files to a server" security setting for the security zone used to display the Web page containing the input object. For more information, see value.
Windows Internet Explorer 7 and later. By default, Internet Explorer does not include folder or directory path information when uploading files to sites in the Restricted zone. This improves security by preventing information disclosure. Also, to improve accessibility, the input type=file element now contains two accessible elements—one for the input box and one for the Browse button. This change is applicable only to accessibility tools; script implementations are not affected.
Microsoft Internet Explorer 6 for Windows XP Service Pack 2 (SP2) and later. For security reasons, the input type=file element no longer accepts relative file paths. Microsoft Internet Explorer raises an Access Denied exception when the user attempts to submit a form containing an input type=file element that contains a relative path.
The input type=file element is available in HTML and script as of Microsoft Internet Explorer 4.0. The file upload add-on is required to use the input type=file element in Microsoft Internet Explorer 3.02. Users can enter a file path in the text box or click the Browse button to browse the file system. When a file is uploaded, the file name is also submitted.
Normally, this element results in the creation of a text box with a Browse button on an HTML page. In Internet Explorer, the Browse button is connected to the Windows common file dialog.
For Windows app using JavaScript, the Browse button is connected to the file picker dialog. When the file picker UI returns a filename, the WWAHost.exe extracts the path from the filename and provides it to the input type=file element.
Examples
The following example lets the user choose one or more files, and then displays the choices. The files list can also be used to upload to a website.
<!DOCTYPE html> <html > <head> <title>Files property test</title> <script type="text/javascript"> function getFiles() { // Get input element myFileList = document.getElementById("myfiles"); // loop through files property, using length to get number of files chosen for (var i = 0; i < myFileList.files.length; i++) { // display them in the div document.getElementById("display").innerHTML += "<br/>" + myFileList.files[i].name ; } } </script> </head> <body> <label>Use <strong>shift</strong> or <strong>ctrl</strong> click to pick a few files: <input type="file" multiple id="myfiles" onchange="getFiles();" /></label> <div id="display"></div> </body> </html>
The following examples use the input type=file element to upload a file to a server. The first example requires Microsoft Posting Acceptor, which can be used with IIS or Personal Web Server.
This example uses HTML code to submit a file selected by the user to Cpshost.dll, which is installed with Posting Acceptor.
<form name="oForm" action="repost.asp" enctype="multipart/form-data" method="post"> <input type="file" name="oFile1"/> <input type="submit" value="Upload File"> </form>
This example shows the Active Server Page (ASP) content of Repost.asp. Notice that the properties of the uploaded file are accessible from the submitted form.
<%@ LANGUAGE = JScript %> <% Response.buffer=true; %> <html> <title>Repost Example</title> <body> <h1>Upload Status</h1> <p> Destination: <b><% Response.Write(Server.HTMLEncode(Request.Form("TargetURL"))) %></b> </p> <% Response.write("<p>Name: " + Server.HTMLEncode(Request.Form("FileName")) + "</p>"); Response.write("<p>Size: " + Server.HTMLEncode(Request.Form("FileSize")) + "</p>"); Response.write("<p>Path: " + Server.HTMLEncode(Request.Form("FilePath")) + "</p>"); %> </body> </html>
See also

