FormData
multipart/form-data
로 반드시 설정해주어야 함const formData = new FormData();
formData.append('file', file);
axios.post('http://localhost:3079/file/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then((res) => {
...
file input 받기
1) form 태그(다중 업로드 가능)
...
<form>
<input
className='file-input'
type="file"
mulitple
onChange={handleFileChange}
/>
<button onClick={uploadFile}>upload</button>
</form>
...
2) 받아온 파일 데이터 보관
const [files, setFiles] = useState([]);
const handleFilesChange = (e) => {
setFiles(Array.from(e.target.files));
}
3) 서버로 전송
const uploadFiles = (e) => {
e.preventDefault();
const formData = new FormData();
files.map((file) => {
formData.append("files", file);
});
console.log(Array.from(formData));
axios.post('http://localhost:3079/file/uploads', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then((res) => {
console.log(res.data);
}).catch((err) => {
console.error(err);
});
}