React中上传文件
2021-05-11 21:41:59
React中上传文件,如果后端API要求格式为`multipart/form-data`,则使用下面的方式上传
```
import React, {useEffect, useState} from 'react';
import axios from "axios"
function UploadDemo(props) {
const [fileData, setFileData] = useState(null)
return (
<div>
<input type="file" accept="image/*" onChange={(e) => { // 不能用onInput,否则ios上无效,不加accept低版本android可能有兼容问题
setFileData(e.target.files[0])
}}/>
<input type="button" onClick={() => {
let formData = new FormData()
formData.append('file', fileData); // 第一个参数file,由API决定
axios({
method: 'POST',
url: 'http://www.example.com/api/upload/avatar',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
},
timeout: 20000
}).then((res) => {
console.log(res)
})
}}/>
</div>
);
}
export default UploadDemo
```