Package org.htmlunit.html

# Class HtmlFileInput

java.lang.Object
org.htmlunit.html.DomNode
org.htmlunit.html.DomNamespaceNode
org.htmlunit.html.DomElement
org.htmlunit.html.HtmlElement
org.htmlunit.html.HtmlInput
org.htmlunit.html.HtmlFileInput

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `DisabledElement`, `FormFieldWithNameHistory`, `LabelableElement`, `SubmittableElement`, `ValidatableElement`, `Element`, `Node`

public class HtmlFileInput extends HtmlInput implements LabelableElement
Wrapper for the HTML element "input".

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.htmlunit.html.HtmlElement

  `HtmlElement.DisplayStyle`

  ## Nested classes/interfaces inherited from class org.htmlunit.html.DomElement

  `DomElement.ChildElementsIterator`

  ## Nested classes/interfaces inherited from class org.htmlunit.html.DomNode

  `DomNode.ChildIterator, DomNode.DescendantDomElementsIterator, DomNode.DescendantDomNodesIterator, DomNode.DescendantElementsIterator<T extends DomNode>, DomNode.DescendantHtmlElementsIterator`

- ## Field Summary

  ### Fields inherited from class org.htmlunit.html.HtmlInput

  `TAG_NAME`

  ### Fields inherited from class org.htmlunit.html.HtmlElement

  `ATTRIBUTE_CHECKED, ATTRIBUTE_HIDDEN, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDS`

  ### Fields inherited from class org.htmlunit.html.DomElement

  `ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTE`

  ### Fields inherited from class org.htmlunit.html.DomNode

  `PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED`

  ### Fields inherited from interface org.htmlunit.html.DisabledElement

  `ATTRIBUTE_DISABLED`

  ### Fields inherited from interface org.w3c.dom.Node

  `ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `adjustValueAfterTypeChange(HtmlInput oldInput, BrowserVersion browserVersion)`
  `String`
  `getContentType()`
  Gets the content type that should be sent together with the uploaded file.
  `final byte[]`
  `getData()`
  Returns the in-memory data assigned to this file input element, if any.
  `File[]`
  `getFiles()`
  Returns the files.
  `NameValuePair[]`
  `getSubmitNameValuePairs()`
  Returns an array of `NameValuePair`s that are the values that will be sent back to the server whenever this element's containing form is submitted.
  `String`
  `getValue()`
  `boolean`
  `isValid()`
  Returns whether this element satisfies all form validation constraints set.
  `void`
  `setContentType(String contentType)`
  Sets the content type value that should be sent together with the uploaded file.
  `final void`
  `setData(byte[] data)`
  Assigns in-memory data to this file input element.
  `void`
  `setDefaultChecked(boolean defaultChecked)`
  Sets the default checked state to use when this element gets reset, if applicable.
  `void`
  `setDefaultValue(String defaultValue)`
  Sets the default value to use when this element gets reset, if applicable.
  `void`
  `setDirectory(File directory)`
  Used to specify the upload directory.
  `void`
  `setFiles(File... files)`
  Used to specify `multiple` files to upload.
  `void`
  `setValue(String newValue)`
  Sets the value.

  ### Methods inherited from class org.htmlunit.html.HtmlInput

  `changeType, cloneNode, focus, getAccept, getAcceptAttribute, getAccessKeyAttribute, getAlignAttribute, getAltAttribute, getAutocomplete, getCheckedAttribute, getDefaultStyleDisplay, getDefaultValue, getDisabledAttribute, getInternalValue, getMax, getMaxLength, getMaxLengthAttribute, getMin, getMinLength, getMinLengthAttribute, getNameAttribute, getNewNames, getOnBlurAttribute, getOnChangeAttribute, getOnFocusAttribute, getOnSelectAttribute, getOriginalName, getPattern, getPlaceholder, getRawValue, getReadOnlyAttribute, getSize, getSizeAttribute, getSrc, getSrcAttribute, getStep, getTabIndexAttribute, getType, getTypeAttribute, getUseMapAttribute, getValueAttribute, handles, hasPatternMismatchValidityState, isBlankPatternValidated, isCheckable, isChecked, isCustomErrorValidityState, isCustomValidityValid, isDefaultChecked, isDisabled, isFormNoValidate, isMinMaxLengthSupported, isPatternSupported, isReadOnly, isRequiredSupported, isSubmitable, isTooShortValidityState, isValidValidityState, isValueMissingValidityState, markValueDirty, propagateClickStateUpdateToParent, removeFocus, reset, setAccept, setAttributeNS, setAutocomplete, setChecked, setCustomValidity, setFormNoValidate, setMax, setMaxLength, setMin, setMinLength, setPattern, setPlaceholder, setRawValue, setReadOnly, setSize, setSrcAttribute, setStep, setValueAttribute, unmarkValueDirty, valueAttributeChanged, valueModifiedByJavascript, willValidate`

  ### Methods inherited from class org.htmlunit.html.HtmlElement

  `acceptChar, addHtmlAttributeChangeListener, appendChildIfNoneExists, checkChildHierarchy, detach, doType, doType, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, getCanonicalXPath, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getSrcAttributeNormalized, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, hasEventHandlers, isAltPressed, isAttributeCaseSensitive, isCtrlPressed, isDisplayed, isHidden, isOptional, isRequired, isShiftPressed, isSubmittableByEnter, notifyAttributeChangeListeners, removeAttribute, removeChild, removeHtmlAttributeChangeListener, setAttributeNode, setHidden, setHidden, setOwningForm, setRequired, type, type, type, type, typeDone`

  ### Methods inherited from class org.htmlunit.html.DomElement

  `blur, click, click, click, click, click, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, doClickStateUpdate, fireEvent, fireEvent, getAttribute, getAttributeDirect, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getChildElementCount, getChildElements, getElementsByTagName, getElementsByTagNameNS, getEventTargetElement, getFirstElementChild, getId, getLastElementChild, getNodeType, getSchemaTypeInfo, getStaticElementsByTagName, getStyleElement, getStyleElementCaseInSensitive, getStyleMap, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isDisabledElementAndDisabled, isEmptyXmlTagExpanded, isMouseOver, isStateUpdateFirst, matches, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, printOpeningTagContentAsXml, printXml, removeAttributeNode, removeAttributeNS, removeStyleAttribute, replaceStyleAttribute, rightClick, rightClick, setAttribute, setAttributeNodeNS, setAttributeNS, setDefaults, setId, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInnerHtml, setNodeValue, toString, writeStyleToElement`

  ### Methods inherited from class org.htmlunit.html.DomNamespaceNode

  `getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, processImportNode, setPrefix`

  ### Methods inherited from class org.htmlunit.html.DomNode

  `addCharacterDataChangeListener, addDomChangeListener, appendChild, asNormalizedText, asXml, basicRemove, closest, compareDocumentPosition, fireCharacterDataChanged, fireNodeAdded, fireNodeDeleted, getAncestors, getBaseURI, getByXPath, getByXPath, getChildNodes, getChildren, getDescendants, getDomElementDescendants, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstByXPath, getFirstChild, getHtmlElementDescendants, getHtmlPageOrNull, getIndex, getLastChild, getNextElementSibling, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousElementSibling, getPreviousSibling, getReadyState, getScriptableObject, getSelectorList, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, getVisibleText, hasChildNodes, hasFeature, insertBefore, insertBefore, isAncestorOf, isAncestorOfAny, isAttachedToPage, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAddedToPage, onAllChildrenAddedToPage, parseHtmlSnippet, printChildrenAsXml, querySelector, querySelectorAll, quietlyRemoveAndMoveChildrenTo, remove, removeAllChildren, removeCharacterDataChangeListener, removeChild, removeDomChangeListener, replace, replaceChild, setEndLocation, setParentNode, setReadyState, setScriptableObject, setStartLocation, setTextContent, setUserData`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface org.w3c.dom.Node

  `appendChild, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setPrefix, setTextContent, setUserData`

  ### Methods inherited from interface org.htmlunit.html.ValidatableElement

  `hasBadInputValidityState, hasRangeOverflowValidityState, hasRangeUnderflowValidityState, hasTypeMismatchValidityState, isStepMismatchValidityState, isTooLongValidityState`

- ## Method Details

  - ### getData

    public final byte[] getData()
    Returns the in-memory data assigned to this file input element, if any.
    Returns:
      `null` if `setData(byte[])` hasn't be used

  - ### setData

    public final void setData(byte[] data)

    Assigns in-memory data to this file input element. During submission, instead of loading data from a file, the data is read from in-memory byte array.

    NOTE: Only use this method if you wish to upload in-memory data; if you instead wish to upload the contents of an actual file, use `HtmlInput.setValueAttribute(String)`, passing in the path to the file.

    Parameters:
      `data` - the in-memory data assigned to this file input element

  - ### setDefaultChecked

    public void setDefaultChecked(boolean defaultChecked)
    Sets the default checked state to use when this element gets reset, if applicable. The default implementation is empty; only checkboxes and radio buttons really care what the default checked value is.
    Specified by:
      `setDefaultChecked` in interface `SubmittableElement`
    Parameters:
      `defaultChecked` - the default checked state to use when this element gets reset, if applicable
    See Also:
      - `SubmittableElement.setDefaultChecked(boolean)`
      - `HtmlRadioButtonInput.setDefaultChecked(boolean)`
      - `HtmlCheckBoxInput.setDefaultChecked(boolean)`

  - ### getSubmitNameValuePairs

    public NameValuePair[] getSubmitNameValuePairs()

    Returns an array of `NameValuePair`s that are the values that will be sent back to the server whenever this element's containing form is submitted.

    THIS METHOD IS INTENDED FOR THE USE OF THE FRAMEWORK ONLY AND SHOULD NOT BE USED BY CONSUMERS OF HTMLUNIT. USE AT YOUR OWN RISK.

    Specified by:
      `getSubmitNameValuePairs` in interface `SubmittableElement`
    Overrides:
      `getSubmitNameValuePairs` in class `HtmlInput`
    Returns:
      the values that will be sent back to the server whenever this element's containing form is submitted

  - ### setContentType

    public void setContentType(String contentType)
    Sets the content type value that should be sent together with the uploaded file. If content type is not explicitly set, HtmlUnit will try to guess it from the file content.
    Parameters:
      `contentType` - the content type (`null` resets it)

  - ### getContentType

    public String getContentType()
    Gets the content type that should be sent together with the uploaded file.
    Returns:
      the content type, or `null` if this has not been explicitly set and should be guessed from file content

  - ### getValue

    public String getValue()
    Overrides:
      `getValue` in class `HtmlInput`
    Returns:
      the value

  - ### setDefaultValue

    public void setDefaultValue(String defaultValue)
    Sets the default value to use when this element gets reset, if applicable.
    Specified by:
      `setDefaultValue` in interface `SubmittableElement`
    Overrides:
      `setDefaultValue` in class `HtmlInput`
    Parameters:
      `defaultValue` - the default value to use when this element gets reset, if applicable
    See Also:
      - `SubmittableElement.setDefaultValue(String)`

  - ### setValue

    public void setValue(String newValue)
    Sets the value.
    Overrides:
      `setValue` in class `HtmlInput`
    Parameters:
      `newValue` - the new value

  - ### setFiles

    public void setFiles(File... files)
    Used to specify `multiple` files to upload.

    We may follow WebDriver solution, once made, see https://code.google.com/p/selenium/issues/detail?id=2239

    Parameters:
      `files` - the list of files to upload

  - ### setDirectory

    public void setDirectory(File directory)
    Used to specify the upload directory.
    Parameters:
      `directory` - the directory to upload all files

  - ### getFiles

    public File[] getFiles()
    Returns the files.
    Returns:
      the array of `File`s

  - ### isValid

    public boolean isValid()
    Returns whether this element satisfies all form validation constraints set.
    Overrides:
      `isValid` in class `HtmlInput`
    Returns:
      whether this element satisfies all form validation constraints set

  - ### adjustValueAfterTypeChange

    protected void adjustValueAfterTypeChange(HtmlInput oldInput, BrowserVersion browserVersion)
    Overrides:
      `adjustValueAfterTypeChange` in class `HtmlInput`