jeffdev
1k
2020-10-09 21:26:50 작성 2020-10-09 21:27:35 수정됨
4
130

리액트네이티브 imagepicker 스프링으로 전송



@RequestParam(name = "images", required = false) MultipartFile file

스프링 코드구요


const handleChoosePhoto = () => {
const options = {
noData: true,
};
ImagePicker.launchImageLibrary(options, (photo) => {
if (photo.uri) {
//this.setState({ photo: response });
console.log('this')
setPhoto(photo)
console.log(photo)
const formData = new FormData();
formData.append("images", photo);
console.log(photo.fileName);
axios.post("http://192.168.1.251:8080/mobile/feed/upload",{
headers: {
"Content-type": "multipart/form-data"
}
}), formData;
// dispatch({
// type: UPLOAD_IMAGES_REQUEST,
// data: data,
// })
}
})
}

리액트코드입니다

위에 콘솔로그 photo찍음 나오는내용이구요


서버에러는 널값 떨어집니다..도대체 머가 문제일까요 어떻게 해결해야할까요ㅜ

0
  • 답변 4

  • 페코옹
    645
    2020-10-09 21:29:07

    formdata 위치가 저기가 맞습니꽈~

  • jeffdev
    1k
    2020-10-09 23:00:17

    바꿔서 해도안됩니다ㅜ

    이게 제가봤을떄 리액트네이티브는 File객체가 아니라서 스프링서 못받는데..형식이 달라서..

    이걸 어떻게 File객체로 바꿔야할까요?ㅠㅜ

  • 페코옹
    645
    2020-10-10 11:21:11

    axios.post(url, body, header)

    로 하셨지요?

    그리고 body 위치에 formData로 변경해서 보내신거 맞지요?

    그럼 될거에요

    안되면 

    formData.append("images", {name:photo.fileName, uri:photo.uri})

    로 해보세요

  • jeffdev
    1k
    2020-10-10 13:21:32

    @페코옹 그렇게해도안되요 스프링 멀티파트랑 형식이 안맞아서 안받아지는거같은데요ㅜ

    그걸 어떻게 해결할지가 관건인거같아요

  • 로그인을 하시면 답변 을 등록할 수 있습니다.