• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

안녕하세요! 질문이 있습니다.

21.08.14 01:34 작성 조회수 252

0


안녕하세요! 언제나 좋은 강의 감사드립니다 :)

파일업로드 예제에 대해 실습하면서 의문사항이 생겨 질문 드립니다.

처음 파일업로드를 완료한 상태에서, 따로 파일을 선택하지 않은 상태에서 웹브라우저를 새로고침하면, 저절로 이전에 파일업로드 처리가 완료된 POST /upload API 요청이 한번 더 나가서 파일업로드 처리가 한번 더 수행됩니다.

이럴경우, 사용자가 의도하지 않았는데도 파일업로드 처리가 될 우려가 있을 것 같고, 서버 측에서도 괜히 파일업도르 처리를 한번 더 수행하는 상황이 생길거 같은데,,,

왜  api call이 한번 더 나가는 걸까요??

아니면 혹시 해결법이 있을까요? 리다이렉트를 수행시키면 될까요??

답변 1

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2021.08.14

안녕하세요. ygh님, 공식 서포터즈 OMG입니다.

아래와 같이 redirect시키면 문제를 해결하실 수 있습니다.

@PostMapping("/upload")
public String saveFile(@RequestParam String itemName,
@RequestParam MultipartFile file, HttpServletRequest request) throws IOException {

log.info("request={}", request);
log.info("itemName={}", itemName);
log.info("multipartFile={}", file);

if (!file.isEmpty()) {
String fullPath = fileDir + file.getOriginalFilename();
log.info("파일 저장 fullPath={}", fullPath);
file.transferTo(new File(fullPath));
}

return "redirect:/spring/upload";
}

파일업로드에 초점을 두어 크게 신경쓰지 않으신걸로 보입니다.

관련하여 MVC1편에서 PRG패턴으로 강의가 진행됩니다.

감사합니다. 

ygh님의 프로필

ygh

질문자

2021.08.14

OMG님! 답변 감사드립니다 :)

해결방법은 말씀해주신 리다이렉트를 쓰면 될 것 같은데,,,
혹시 초기에 파일업로드 수행시 완료 후 새로고침을 했을 때, 왜 이전에 수행했던 파일업로드가 또 수행될까요??

이것에 대해서도 궁금합니다!

OMG님의 프로필

OMG

2021.08.14

아래 내용을 참고하시면 될 것 같습니다

참고

https://it-eldorado.tistory.com/68