빽곰s
356
2019-04-15 19:36:53
3
83

다중 첨부파일 관련 질문


파일첨부관련 질문올립니다!!


제가 다중업로드를 form에서

List<MultipartFile> mFile = insDto.getFile();

스프링 @service 로직에서 첨부파일을 첨부하지 않고 게시글을 올릴경우 if를 이용하여 파일첨부 로직을 태우지 않게 분기처리를 해놨습니다.


그러나 테스트를 해보니 계속 첨부로직을 타길래 디버깅을 찍어보니 아래 사진처럼 fileName="" 값으로 들어와서 해당 리스트의 사이즈로 조건을 성립할수 없습니다.

저 빈값이 무조건 들어오는것이 아닌 첨부파일 1개만 첨부한다면 fileName 에는 해당 첨부파일 이름이 들어갑니다. 

첨부파일을 아에 첨부하지 않는다면 무조건 공백의 fileName이 무조건 들어옵니다... 


어떤게 문제일까요 ㅜㅜ



0
0
  • 답변 3

  • dogi
    121
    2019-04-16 09:28:09 작성 2019-04-16 09:30:11 수정됨

    질문 의도와 같지는 않지만,

    혹시 해결하고 싶으신게 파일첨부 내용이 없으면 로직을 태우지 않게 할려고 하시는건가요?

    <input type="file" name="a" multiple> 이걸 빈값으로 던져도 사이즈 -1의 빈 파일 객체는 들어가는 것으로 알고 있습니다만..

    0
  • 빽곰s
    356
    2019-04-16 11:14:40

    해당 size -1  의 빈객체가 들어가는것을 확인하였습니다. 하지만

    List 이기때문에 저 정보를 가져올려면 결국 for문을 돌려 해당 객체를 접근해야하지 않나요?

    0
  • dogi
    121
    2019-04-16 12:49:17 작성 2019-04-16 12:56:56 수정됨

    네 맞습니다. 혹시 if문을 어떻게 구성하셨나요?

    빈값이 들어가서 계속 if문을 통과한다면 사이즈 값을 뽑아서 -1일 경우를 걸어주면 되지않을까 생각합니다.

    사이즈 값을 뽑기 어려우시다면 

    제네릭을 사용하세요

    List<MultipartFile> list;
    
    if( list.get(i).getSize() == -1 ) { // 이 방법도 되고
    }
    if(StringUtils.isNullOrEmpty(String.valueOf(list.get(0).getOriginalFilename())) { } // 이 방법도 되고..

    이런 식으로 값 뽑아내서 체크하면 되지 않을까요?

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