presentjava
246
2018-03-20 15:24:25
1
395

MultipartRequest 확장자 체크 문의


안녕하세요 개발자 선배님들

하나 문의 사항이 있습니다.

MultipartRequest 를 써서 파일 업로드 시 확장자 체크를 하려고 하는데요..

jsp, html은 걸러서 일반 파일들만 올릴려고 하는데

어느 부분을 손 대야 할지...

조언 부탁 드립니다.

//첨부파일 관련 설정
	MultipartRequest multi = null; 
	int size = 20*1024*1024; // 업로드 파일 최대 크기 지정 20M로 지정
	
	String applicationRealPath = getServletConfig().getServletContext().getRealPath("/");
	
	String uploadPath = applicationRealPath + "/audit/fileUpload"; //파일업로드 경로
	File fCheck = new File(  uploadPath  );
	
	System.out.println("applicationRealPath::::"+applicationRealPath);
	System.out.println("uploadPath::::"+uploadPath);

	//디렉토리가 존재하지 않으면 디렉토리를 만든다.
	//if(!fCheck.exists()) {
	if(!fCheck.isDirectory()) {
		fCheck.mkdir();
		System.out.println("fCheck.mkdir()::"+fCheck.mkdir());
	}
	
	try{
	
		multi = new MultipartRequest(request, uploadPath, size, "euc-kr", new DefaultFileRenamePolicy());
		
		//파일저장
		Enumeration files = multi.getFileNames();
		String ori_files = "";
		String crt_files = "";
		String fromname = "";
		String filename = "";
		
		//신규파일 저장 부분
		int file_idx = 0;
		while(files.hasMoreElements()) {
		    fromname = (String)files.nextElement();
		    filename = multi.getFilesystemName(fromname);
		    
		    if(filename != null) {
		        //filesize = multi.getFile(fromname).length();
		        
		        String timemask = ""+System.currentTimeMillis(); 
		        //out.print("timemask="+timemask);
		        
		        File upfile1 = new File(uploadPath+"/"+filename); //--'/'를빼고 작업했다 .그래서 경로가 제대로 나오지 않음
				System.out.println(upfile1);

		        File upfile2 = new File(uploadPath+"/"+timemask+file_idx+filename.substring(filename.lastIndexOf(".")));
		        System.out.println(upfile2);

		        if(upfile1.renameTo(upfile2)){
		            //out.print("이름변경성공");
		        }else{
		            //out.print("이름변경실패");
		        }
				//out.print("업로드 된 파일명="+uploadPath+"/"+upfile2.getName());
				String newFileName = upfile2.getName();
				
				System.out.println(newFileName);

		        ori_files = ori_files + filename + "|";
		        crt_files = crt_files + newFileName + "|";

				System.out.println(ori_files);
				System.out.println(crt_files);

		        file_idx++;
		    }
		}


0
0
  • 답변 1

  • 오후
    1k
    2018-03-20 15:37:39

    filename  <-- 이걸로 필요한확장자 일때만 그이하 구문돌리시면될거같네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.