Spring boot 여러 이미지파일 리턴

조회수 857회

Spring boot gradle기반 사용하고있습니다.

궁금한게 있는데 데이터베이스에서 이미지파일이 들어있는 경로를 가지고온다음에 해당 이미지 파일을 byte로바꿔서 리턴해주는데 주로 어떤식으로 하는지 알 수 있을까요?? 제가 해본 방식은 이런식으로 byte값으로 리턴합니다.

@RequestMapping(value="경로",method= RequestedMethod.GET)
public JSONObject selectImage() throws Exception{
    JSONObject obj=new JSONObject();
    byte[] files=FileUtils.readFileToByteArray(new File("파일이 들어있는 경로"));
    obj.put("response",files);
    return obj
}

이런식으로 리턴하나요?? PostMan으로 GET해봤는데 엄청 길더라고요

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

  • http 로 바이너리 데이터를 주고 받으려면 multipart/form-data 을 사용합니다. http 는 복잡한 프로토콜이 아니니 시간내서 학습을 해보세요. 웹은 파일을 어떻해 주고 받을지... 정영훈 2020.2.13 04:04

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    혹시 지금 올리신 코드가 제대로 작동하는 코드인가요? 바이너리 데이터를 텍스트로 전송하는게 되어버려서 작동하지 않을것으로 보이네요.

    바이너리 데이터를 전송하려면 텍스트로 응답하는게 아니라 파일 스트림을 사용한다던지의 방법이 있습니다. 그리고 클라이언트가 이 전송은 바이너리 데이터라는 것을 알 수 있게 응답 헤더도 적절히 설정해야 하죠.

    java spring file download 혹은 java file download로 검색하면 나오는게 엄~청 많습니다.

    • 감사합니다!! jgg0819 2020.2.13 14:13

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)