<% //1. 전달되는 데이터 인코딩 request.setCharacterEncoding("euc-kr");
//2. 업로드 폴더 지정(절대경로 = 파일을 직접적으로 접근하는 방식) String savePath = "d:\\upfile";
//3. 업로드 파일 크기 => 10MB int maxSize = 10 * 1024 * 1024;
//4. 파일 이름 저장하는 변수 생성 String fileName=""; String originalFileName="";
//5. 예외처리 포함한 파일업로드 try{ MultipartRequest multi = new MultipartRequest(request, savePath, maxSize, "euc-kr", new DefaultFileRenamePolicy()); //여기까지 파일업로드완료 //6. 파일업로드 결과를 화면에 출력 //6-1. 폼의 이름 반환 Enumeration formNames = multi.getFileNames(); //업캐스팅 //6-2. 전달된 파일의 정보를 저장 String formname = (String) formNames.nextElement(); //위의 업캐스팅한 걸 다운캐스팅 //7. 서버에 저장된 파일의 이름저장 fileName = multi.getFilesystemName(formname); //8. 원래 파일의 이름 저장 originalFileName = multi.getOriginalFileName(formname); //9.파일업로드 성공시 해당 정보 출력 if(fileName == null){ out.println("파일업로드 실패!"); }else{ out.print("업로드한 사람 : "+multi.getParameter("name") +"<br>업로드 파일이름(서버저장) : "+fileName+"<br>업로드 파일이름(원본): "+originalFileName +"<br>file태그정보 : "+formname); } }catch(Exception e){ out.println("파일업로드 중 예외상황발생"); e.printStackTrace(); } %> <fieldset> <form method="post" name="myform"> <input type="text" name="filename" value="<%=fileName%>"> //onclick에 function을 넣어도 되고 location.href넣어도 동일한 결과 출력 <input type="button" value="파일삭제" onclick="delfile()"> <input type="button" value="파일삭제" onclick="location.href='./delup.jsp'"> <input type="button" value="파일다운로드"> </form> </fieldset>
4. delup.jsp 생성
한글파일빼고는 삭제가 잘 진행된다. 인코딩방식의 문제이므로 나중에 처리하기로한다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<% //1. 전달된 파일 이름 저장 String filename = request.getParameter("filename");
//2. 파일 객체 생성 -> 삭제 //File f = new File("해당파일의 위치+파일명"); //객체를 만든 순간 = 해당 폴더로 이동해서 파일을 선택한 상황임. File f = new File("D:\\upfile/"+filename);
//3. 파일삭제 f.delete(); out.println("파일삭제완료");
//3-1. 한글파일빼고는 삭제가 잘 진행된다. out.println(filename); %>