Nodejs 클라이언트 컴포넌트에서 fetch로 백엔드 서버에 파일을 전송하려고 하는 상황에서 다음과 같은 에러가 발생했습니다.
{"detail":"Missing boundary in multipart."}
이런 경우에는 form 태그에 encType="multipart/form-data"를 넣어주고, 헤더에서 'Content-Type': 'multipart/form-data'를 빼주면 문제가 해결됩니다.
"use client"
import { useRouter } from 'next/navigation';
export function UploadImage() {
const router = useRouter();
return (
<form onSubmit={(e)=>{
e.preventDefault();
const myimage = e.target.myimage.files[0];
const formData = new FormData();
formData.append('file', myimage);
const options = {
method: 'POST',
credentials: "include",
body: formData
}
fetch(process.env.NEXT_PUBLIC_API_URL + `v1/coloring/uploadfile`, options)
.then(res=>res.json())
.then(result=>{
console.log("이미지 업로드 성공");
console.log("result: ", result);
router.refresh();
})
}} encType="multipart/form-data">
<p>
<input type="file" id="myimage" name="myimage" accept="image/png, image/jpeg"></input>
<br></br>
<input type="submit" value="제출"></input>
</p>
</form>
)
}
참고자료
'Dev > javascript' 카테고리의 다른 글
[nextjs] tailwindcss 사용할 때 globals.css에 있어야 하는 코드 (0) | 2023.12.09 |
---|---|
[javascript] 비교연산자 ==와 === 차이 비교 (0) | 2023.11.15 |
자바스크립트의 패키지 관리자 npm과 pnpm (0) | 2023.11.14 |
[nextjs] Vercel로 배포하는 방법 (0) | 2023.11.08 |
[javascript] ESLint가 뭐지? (0) | 2023.10.29 |
[plotly.js] 차트, 플롯의 배경색 설정하는 방법 (0) | 2023.05.23 |
[javascript] 변수 선언 키워드 var, let, const 차이 정리 (0) | 2023.05.01 |
[javascript] 배열의 원소 중 하나 랜덤 선택하기 (0) | 2023.04.27 |