ERROR:: (Tindog) Mac에서 파일이 원하는 경로에 들어가지 않는 현상

suragryen·2024년 2월 2일
0

Tindog

목록 보기
2/3

ERROR🚨

  • 윈도우에서는 잘 동작했는데 똑같은 코드를 맥에서 적용했을때 경로를 이탈
  • 파일을 insert 할 때 storage에 들어가지 않고 자꾸 경로를 이탈하는 현상
  • 경로를 찾지 못하고 storage\파일명 으로 바뀜

오류코드

if(mainphotofile != null && !mainphotofile.isEmpty()) {//파일이 존재한다면
    		filename=mainphotofile.getOriginalFilename();
    		filesize=mainphotofile.getSize();
    		try {
    			ServletContext application = req.getSession().getServletContext();
    			String path=application.getRealPath("/storage");  //실제 물리적인 경로
    			mainphotofile.transferTo(new File(path + "\\" + filename)); //파일저장
    			System.out.println(path);
    		}catch (Exception e) {
				System.out.println(e);
			}//try end
    	}//if end

오류 해결 코드

if (mainphotofile != null && !mainphotofile.isEmpty()) {
    filename = mainphotofile.getOriginalFilename();
    filesize = mainphotofile.getSize();
    try {
        ServletContext application = req.getSession().getServletContext();
        String path = application.getRealPath("/storage"); // 실제 물리적인 경로

        // 파일 경로와 파일명을 올바르게 합쳐서 파일 객체 생성
        File file = new File(path, filename);

        // 파일 저장
        mainphotofile.transferTo(file);
        System.out.println(path);
    } catch (Exception e) {
        System.out.println(e);
    }
}
  • transferTo와 파일명/경로를 설정하는 과정을 분리해줬더니 오류 해결
profile
블로그 이사중 ☃︎

0개의 댓글