<netui:fileUpload> Tag

Renders an HTML input tag with which users can browse, select, and upload files from their local machine.

Syntax

<netui:fileUpload
    [accept="accept"]
    dataSource="dataSource"
    [dir="dir"]
    [disabled="disabled"]
    [lang="lang"]
    [onBlur="onBlur"]
    [onChange="onChange"]
    [onClick="onClick"]
    [onDblClick="onDblClick"]
    [onFocus="onFocus"]
    [onKeyDown="onKeyDown"]
    [onKeyPress="onKeyPress"]
    [onKeyUp="onKeyUp"]
    [onMouseDown="onMouseDown"]
    [onMouseMove="onMouseMove"]
    [onMouseOut="onMouseOut"]
    [onMouseOver="onMouseOver"]
    [onMouseUp="onMouseUp"]
    [onSelect="onSelect"]
    [readonly="readonly"]
    [size="size"]
    [style="style"]
    [styleClass="styleClass"]
    [tagId="tagId"]
    [title="title"] />

Description

Renders an HTML input tag with which users can browse, select, and upload files from their local machine.

To successfully upload files, the following two conditions must be met:

The dataSource attribute for the <netui:fileUpload> tag is write-only. This means that the value of the <netui:fileUpload> tag cannot be read back into the tag on postback.

Attributes
accept
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The set of MIME types accepted for file upload.
dataSource
Required: Yes  |   Supports runtime evaluation: No  |   Data bindable:

The dataSource attribute determines both (1) the source of populating data for the tag and (2) the object to which the tag submits data.

For example, assume that the Controller file (= JPF file) contains a Form Bean with the property foo. Then the following <netui:textBox> tag will (1) draw populating data from the Form Bean's foo property and (2) submit user defined data to the same property.

    <netui:textBox dataSource="{actionForm.foo}" />

The dataSource attribute takes either a data binding expression or the name of a Form Bean property. In the above example, <netui:textBox dataSource="foo" /> would have the exactly same behavior.

When the tag is used to submit data, the data binding expression must refer to a Form Bean property. In cases where the tag is not used to submit data, but is used for displaying data only, the data binding expression need not refer to a Form Bean property. For example, assume that myIterativeData is a member variable on the Controller file ( = JPF file). The following <netui-data:repeater> tag draws its data from myIterativeData.

    <netui-data:repeater dataSource="{pageFlow.myIterativeData}">

dir
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The dir.
disabled
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

lang
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The lang.
onBlur
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

onChange
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

onClick
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onClick JavaScript event.
onDblClick
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onDblClick JavaScript event.
onFocus
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

onKeyDown
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onKeyDown JavaScript event.
onKeyPress
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onKeyPress JavaScript event.
onKeyUp
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onKeyUp JavaScript event.
onMouseDown
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseDown JavaScript event.
onMouseMove
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseMove JavaScript event.
onMouseOut
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseOut JavaScript event.
onMouseOver
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseOver JavaScript event.
onMouseUp
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseUp JavaScript event.
onSelect
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

readonly
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

Boolean. Determines whether or not the file upload field is read-only.
size
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

Integer. The number of characters visible in the file upload field.
style
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The style.
styleClass
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The style class.
tagId
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

String value. Sets the id (or name) attribute of the rendered HTML tag. Note that the real id attribute rendered in the browser may be changed by the application container (for example, Portal containers may change the rendered id value to ensure the uniqueness of id's on the page). In this case, the real id rendered in the browser may be looked up through the JavaScript function getNetuiTagName( tagId, tag ).

For example, assume that some tag's tagId attribute is set to foo.

    <netui:textBox tagId="foo" />

Then the following JavaScript function will return the real id attribute rendered in the browser:

    getNetuiTagName( "foo", this )

To get a <netui:form> element and all of its children elements in JavaScript, use the same JavaScript function getNetuiTagName( tagId, tag ). For example, assume that there is a <netui:form> whose tagId attribute is set to bar.

    <netui:form tagId="bar" >

Then the following JavaScript function will return the <netui:form> element and its children (packaged as an array).

    document[getNetuiTagName( "bar", this )]

To retreive the value entered into a <netui:textBox> within the <netui:form> tag, use the following JavaScript expression.

    document[getNetuiTagName("bar", this)][getNetuiTagName("foo", this)].value

The second parameter ensures that the JavaScript function begins its search within the correct Portlet scope. Pass the JavaScript keyword this as the second parameter. For detailed information on using the function getNetuiTagName( tagId, tag ) see Using JavaScript in Page Flow and Portal Applications.

title
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The title.

 
Example

In the following example, note the enctype attribute of the enclosing <netui:form> tag.

       <netui:form action="uploadFile" enctype="multipart/form-data">
          <netui:fileUpload tagId="inputbox" dataSource="{actionForm.theFile}" />
          <netui:button value="Upload File" />
      </netui:form>
Note that the <netui:fileUpload> tag submits the file to Form Bean property theFile. This property must be of type org.apache.struts.upload.FormFile:
    public static class UploadFileForm extends FormData
  {
      private org.apache.struts.upload.FormFile theFile;

      public void setTheFile(org.apache.struts.upload.FormFile theFile)
      {
          this.theFile = theFile;
      }

      public org.apache.struts.upload.FormFile getTheFile()
      {
          return this.theFile;
      }
  }