9月 11, 2019 React
### 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
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)