이걸로 거의 2시간정도 애먹은것 같다........ 결론은 file저장할 때 만든 String 이름을 VO에 담지 않아서 그랬음!!
그냥 jsp에서 넘긴거를 넣으려고 하니까 안됐다~~~~~~~~하하하하하하
다신 삽질하지 않기 위해 기록남김...
String saveDirectory = getServletContext().getRealPath("/files"); // 웹서버상의 절대경로.
String encType = "UTF-8";
int maxSize = 5 * 1024 * 1024;
try {
// saveDirectory 폴더가 없다면 생성
File path = new File(saveDirectory);
System.out.println("path : " + path);
if (!path.exists()) {
path.mkdirs();
}
// saveDirectory위치에 파일을 저장하는 코드
MultipartRequest mReq = new MultipartRequest(request, saveDirectory, maxSize, encType, new DefaultFileRenamePolicy());
// *****저장이 잘 되었는지 확인하는 코드*****
// 저장된 file의 정보(file의 경로 + file name)를 읽어오기 --> DB에 저장할 내용임
String fileName = "";
Enumeration<?> files = mReq.getFileNames();
while (files.hasMoreElements()) {
String name = (String) files.nextElement(); // input type="file" name="xxxx" //name부분을 String에 넣기.
fileName = mReq.getFilesystemName(name); // 서버에 저장된 파일이름이 fileName에 들어감
File f1 = mReq.getFile(name); // 서버에 file이 정상적으로 저장되어있는지 다시 읽어와서 확인함. //이름만 저장되고 파일이 없는지 확인하는 코드임!!
if (f1 == null) {
System.out.println("파일 업로드 실패!");
} else {
System.out.println("파일 업로드 성공!" + f1.length()); // 파일 크기 확인
}
}
Review review = new Review();
review.setReviewPhoto(fileName);