The file input Tag

<input type="file" />
//shows how to create a ref to the DOM node to access file(s) in a submit handler

class FileInput extends React.Component {
  constructor(props) {
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this);
    this.fileInput = React.createRef();
  }
  handleSubmit(event) {
    event.preventDefault();
    alert(
      `Selected file - ${
        this.fileInput.current.files[0].name
      }`
    );
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Upload file:
          <input type="file" ref={this.fileInput} />
        </label>
        <br />
        <button type="submit">Submit</button>
      </form>
    );
  }
}

ReactDOM.render(
  <FileInput />,
  document.getElementById('root')
);

It is an uncontrolled component in React because its value is read-only.

Lets the user choose one or more files from their device storage to be uploaded to a server or manipulated by JavaScript via the File API.

Related concepts

The file input Tag

The file input Tag — Structure map

Clickable & Draggable!

The file input Tag — Related pages: