### 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