[IT]/[JSP]

[JSP] 파일 업로드 활용하기

용눈 2017. 12. 5. 11:51
반응형



[fileUploadServer.jsp]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<body>
 
<%
    //파일 업로드 객체 하나만 있으면 파일 업로드가 수행 된다.
    //MultipartRequst 클래스를 이용
    
    //application 이 ServletContext 이다.
    String saveDirectory = application.getRealPath("/upload"); //실제 경로
    out.println("saveDirectory => " + saveDirectory + "<br>");
    
    int maxPostSize = 5*1024*1024//5MB
 
    MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize, "EUC-KR"new DefaultFileRenamePolicy());
 
    String title = multi.getParameter("title");
    String user = multi.getParameter("user");
    out.println(title = " : " + user + "<br>");
    
    Enumeration enu = multi.getParameterNames();
    while(enu.hasMoreElements()){
        String name = (String)enu.nextElement();
        out.println(name + "=>" + multi.getParameter(name) + "<br>");
    }
    out.println("<hr>");
    
    //getFile() - File객체를 얻어 올 수 있다. File 객체를 맘대로 제어 가능.
    //getFileName() - 멀티 업로드가 기본적으로 가능하다.
    Enumeration enu2 = multi.getFileNames();
    
    while(enu2.hasMoreElements()){
        String fileName = (String)enu2.nextElement();
        out.println("fileName => " + fileName + "<br>");
        out.println("실제 파일명 => " + multi.getOriginalFileName(fileName) + "<br>");
        out.println("저장될 파일명 => " + multi.getFilesystemName(fileName) + "<br>");
        out.println("파일 타입 => " + multi.getContentType(fileName) + "<br>");
    }
    
%>
 
</body>
cs










해당 파일을 확인할 수 있다.


파일제목이 test 이고 작성자는 admin 인 것을 확인할 수 있다.


또한 실제 파일명, 저장될 파일명, 파일 타입도 확인할 수 있다.



여기서 현재 upload 폴더에 test.txt 가 존재하여 test1.txt 로 파일명이 변경되어 저장된 것을 확인할 수 있다.


이는 MultipartRequest 의 FileRenamePolicy policy 를 new DefaultFileRenamePolicy() 로 설정되어 있기 때문이다.







[fileUploadServer.jsp]


1
2
3
4
5
6
7
8
9
10
11
12
13
    out.println("<hr>");
    File fileDir = new File(saveDirectory);
    File[] files = fileDir.listFiles();
    
    for(File file : files){
        String fileName = file.getName();
        out.println(fileName + "<br>");
        file.delete(); //파일 삭제
    }
    
    if(fileDir.list().length == 0){
        out.println("upload 디렉토리가 모두 비었습니다.<br>");
    }

cs



upload 폴더를 File 형식으로 하여 .listFiles(); 를 통해 upload 폴더의 파일들을 확일할 수 있다.


또한 for문을 통해 폴더에 있는 모든 파일을 삭제할 수도 있다.







반응형

'[IT] > [JSP]' 카테고리의 다른 글

[JSP] 파일 업로드  (0) 2017.12.05
[JSP] 액션태그(getProperty)  (0) 2017.12.04
[JSP] 액션태그(forward)  (0) 2017.12.04
[JSP] 예외처리 페이지  (0) 2017.12.04
[JSP] include를 활용한 화면 분할  (0) 2017.12.04