본문 바로가기

카테고리 없음

세미프로젝트) 데이터 등록하는데 file값이 null 혹은 undefined로 넘어가는 현상

이걸로 거의 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);