첨부파일 절대 경로를 상대경로로 수정하기

북마크 추가

첨부 파일을 절대경로로 저장을 했는데 경로라는 것이 바뀔수 있기 때문에 상대경로로 수정을하였습니다.

아래는 예제 코드 입니다.

 

public void boardUploadFile(MultipartHttpServletRequest request ,HttpSession session) throws IOException {
Iterator<String> itr =  request.getFileNames();
        List<MultipartFile> mpf = request.getFiles(itr.next());
       
        for(int i=0; i< mpf.size();i++){
        String path = request.getSession().getServletContext().getRealPath("");
             String path2 = request.getSession().getServletContext().getRealPath("resources/board/attachfile");
        System.out.println("path :  "+path);
        System.out.println("path2 :  "+path2);
        String fileName = "/"+new String(mpf.get(i).getOriginalFilename().getBytes("8859_1"),"utf-8");
        File files = new File(path2 + fileName );
System.out.println("Fullpath :  "+files);
        mpf.get(i).transferTo(files);
        }
 }

 

기존에서는

String path ="/var/tomcat/webapps/soweb/resources/board/attachfile​/";

이렇게 절대 경로로 설정을 하였습니다. 

 

상대경로를 가져오는 예시입니다.

String path = request.getSession().getServletContext().getRealPath("");

path :  C:\workspace-sts-3.6.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ServiceOrchestratorWeb

현재 프로젝트명의 폴더명까지만 가지고 옵니다.

 

String path2 = request.getSession().getServletContext().getRealPath("resources/board/attachfile");

path2 :  C:\workspace-sts-3.6.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ServiceOrchestratorWeb\resources\board\attachfile

현재 프로젝트명의 폴더명 밑에 제가 원하는 폴더명 까지 가지고 옵니다.

마지막에 resources/board/attachfile​ 부분에 resources/board/attachfile/​ 식으로 기입하셔도

".......\ServiceOrchestratorWeb\resources\board\attachfile​\" 이렇게 가져오지는 않습니다.

그래서 String fileName = "/"+new String(mpf.get(i).getOriginalFilename().getBytes("8859_1"),"utf-8");

이렇게 파일명 앞에 "/"붙여 주시던지 하셔야지 아래와 같이 경로 설정이 가능합니다.​

 

<Fullpath>

C:\workspace-sts-3.6.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ServiceOrchestratorWeb\resources\board\attachfile\apache-tomcat-7.0.16.zip 

 

이상입니다. 수고하세요.

 

 

AD
김**
2014-10-21 11:38
SHARE