SSISO Community

시소당

[JSP] FileUpLoad *


<%@ page contentType = "text/html; charset=euc-kr" %>
<html>
<head></head>
<body>

<form action="dddd.jsp" method="post"
      enctype="multipart/form-data">

파일1: <input type="file" name="file1"><br>
파일2: <input type="file" name="file2"><br>
파일1: <input type="file" name="file3"><br>
param1: <input type="text" name="param1"><br>
param2: <input type="text" name="param2"><br>
param3: <input type="text" name="param3"><br>
<input type="submit" value="전송">
</form>
</body>
</html>


-----------------------------------------------------------------------------------------


<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ page import = "org.apache.commons.fileupload.FileUpload" %>
<%@ page import = "org.apache.commons.fileupload.DiskFileUpload" %>
<%@ page import = "org.apache.commons.fileupload.FileItem" %>
<%@ page import = "java.io.File" %>
<%@ page import = "java.io.BufferedInputStream" %>
<%@ page import = "java.io.BufferedOutputStream" %>
<%@ page import = "java.io.FileOutputStream" %>
<%@ page import = "java.io.IOException" %>
<html>
<head><title>파일 업로드 처리</title></head>
<body>

<%
    if (FileUpload.isMultipartContent(request)) {
        String temporaryDir = "/root/Download/";
       
        DiskFileUpload fileUpload = new DiskFileUpload();
        fileUpload.setRepositoryPath(temporaryDir);
        // 최대 1메가까지 업로드 가능
        fileUpload.setSizeMax(1024*1024);
        // 한번에 100K 까지는 메모리에 저장.
        fileUpload.setSizeThreshold(1024*100);
       
        /* FileItem의 리스트 */
        java.util.List fileItemList = fileUpload.parseRequest(request);
        for (int i = 0 ; i < fileItemList.size() ; i++) {
            FileItem fileItem = (FileItem) fileItemList.get(i);
            if (fileItem.isFormField()) {
                // 파일 이외의 파라미터
%>
폼 파라미터: <%= fileItem.getFieldName() %>=<%= fileItem.getString() %><br>
<%
            } else {
                // 파일인 경우
%>
파일: <%= fileItem.getFieldName() %>=<%= fileItem.getName() %>
(<%= fileItem.getSize() %> bytes)<br>
<%              if (fileItem.isInMemory()) {    %>
"메모리에 저장" <br>
<%              } else {    %>
"디스크에 저장" <br>
<%              }   %>
<%
                // 업로드한 파일이 존재하는 경우
                if ( fileItem.getSize() > 0) {
                    int idx = fileItem.getName().lastIndexOf("\\");
                    if (idx == -1) {
                        idx = fileItem.getName().lastIndexOf("/");
                    }
                    String fileName = fileItem.getName().substring(idx + 1);
                   
                    try {
                        File uploadedFile = new File("/root", fileName);
                        fileItem.write(uploadedFile);
                    } catch(IOException ex) {
                        // 예외 처리
                    }
                }
            }
        }
    } else {
%>
인코딩 타입이 multipart/form-data가 아님.
<%
    }
%>

</body>
</html>

[출처] [JSP] FileUpLoad *|작성자 백전백승

1090 view

4.0 stars