작성
·
364
0
안녕하세요. 강의를 듣다가 헷갈리는부분이 있어 질문 남깁니다..!
1.
String UPLOAD_DIR = "file_repo" ;
String uploadPath = request.getServletContext().getRealPath("")+File.separator+UPLOAD_DIR ;
File currentDirPath = new File(uploadPath) ;
if (!currentDirPath.exists()) {
currentDirPath.mkdir();
}
이 부분과
DiskFileItemFactory factory=new DiskFileItemFactory();
factory.setRepository(currentDirPath);
factory.setSizeThreshold(1024*1024);
이부분의 차이가 무엇인가요 ? 둘다 파일 임시 경로를 만들어주는 코드 아닌가요 ??
2.
String uploadPath = request.getServletContext().getRealPath("")+File.separator+UPLOAD_DIR ;
에서
.getRealPath(“”) 가 정확히 무엇인가요 ?? 그리고 왜 괄호 안에 (“”) 라고 표시해야되는건가요 ????
3. 그리고 제가 27강의 memberList 에서 이미지 띄우기 했는데
이런식으로 뜨는데 뭐가 문제인가요?? (근데 업로드한 파일에 따라서 다른것같습니다. 어떤 사진은 올리면 제대로 잘 나오는데 어떤 사진들은 저런식으로 이미지가 안나옵니다..)
답변해주시면 감사하겠습니다 :D
답변 1
0
1. 임시폴더를 만드는 방법은 어떤 API를 사용하느냐에따라서 달라질 수도 있습니다.
구현방법의 차이라고 보시면 될듯합니다.아래처럼 API를 사용해서도 된다면 아래 코드로 사용하셔도 됩니다.
DiskFileItemFactory factory=new DiskFileItemFactory();
factory.setRepository(currentDirPath);
factory.setSizeThreshold(1024*1024);
2. String uploadPath = request.getServletContext().getRealPath("")+File.separator + UPLOAD_DIRECTORY;
위 코드는 ->웹애플리케이션의 루트 디렉토리를 기준으로 업로드 경로를 만드는 부분입니다.
-. request.getServletContext().getRealPath("") 이부분은 요청 URL의 context path(즉 ROOT경로)를 가지고 온 다음에
실제 하드디스크에있는 실제경로를 알아내기 위해서 getRealPath("")쓰는 것입니다. ""안에 특정 폴더를 지정하면
그 폴더의 실제경로를 만들어주기 때문에 여기에서는 ROOT경로까지만 알아내기 위해서 빈값으로 적어둔거구요
예를들면 경로가 D:\A_teaching...어쩌고 이런식으로 나올겁니다.
-.File.separator는 파일클래스가 지원해주는건데, 운영체제에 의존해서.. 윈도우는 \등 그때그때 달라질수도있어서
운영체제에 맞는 디렉토리구분자를 쓰기위해서 작성한 거구요
-.UPLOAD_DIRECTORY에 연결된 폴더를 만들고 거기에 파일을 저장할려고 마지막에 디렉토리 경로를 연결해주였습니다.
3. 이미지에따라서 보이고 않보이고 하는 부분이 잘 파악이 않되는데요? 혹시 한글 이미지 이름이 깨져서 안나오는지
한번 검토해보시기 바랍니다.?
이해가 되셨는지 모르겠지만 한번 다시 해보시고 문의 주시기 바랍니다.^^