### Get files from DOM element Assume you have an component render a `input` element : ```js import React from 'react'; class FileComponent extends React.Component { render() { return ; } } ``` In React way, you first need to add a event handler to this component : ```js import React from 'react'; class FileComponent extends React.Component { onChangeFile(evt) { // do something } render() { return this.onChangeFile(evt) } />; } } ``` Then you may get the files object from `event` parameter : ```js onChangeFile(evt) { var files = evt.target.files; } ``` ### Upload file by using FormData Add files to `FormData` object : ```js onChangeFile(evt) { // get files var files = evt.target.files; // if no file selected, exit if( files.length === 0 ) { return; } // create form data object var formData = new FormData(); // loop each file for( var i = 0; i < files.length; ++i ) { // append file to form data object with specified field name (multipart formdata) formData.append('file_field_name', files[i]); } // server url var url = 'https://www.example.com/do-file-upload'; // using Axios http client request to server Axios.post(url, formData).then(result => { // handle server response }); } ``` Axios github : https://github.com/axios/axios