관리 메뉴

쿰뱅이

JSP 파일 업로드(엑셀) 본문

WEB/JSP

JSP 파일 업로드(엑셀)

주년 2011. 10. 11. 14:11
반응형

JSP 파일 업로드(엑셀)

파일 업로드 관련 jar: commons-fileupload-1.2.1.jar / commons-io-1.4.jar

                              => http://blog.naver.com/wonsukdream/30057867376

 엑셀 파일 읽기 관련 jar: jxl.jar => http://www.andykhan.com ( JExcelApi v2.2.16 ) / 관련 팁 => http://www.okjsp.pe.kr/seq/25170

 위의 jar 파일을 WEB-INF\lib 로

 

 파일 업로드: fileUploadForm.jsp / processFileUpload.jsp

 엑셀 파일 읽기: readExcel.jsp

 

4342.07.23.THU 테스트 완료.

 

---- fileUploadForm.jsp ----

 

<%@ page contentType="text/html; charset=utf-8" %> ==> 한글 깨짐 현상 일어남

==> (변경) <%@ page contentType="text/html" pageEncoding="EUC-KR" %>


<html><head><title>파일 업로드 폼</title></head>

<body>

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

파일1: <input type="file" name="file1" /><br/>
파일2: <input type="file" name="file2" /><br/>
파일3: <input type="file" name="file3" /><br/>

파라미터1: <input type="text" name="param1" /><br/>
파라미터2: <input type="text" name="param2" /><br/>
파라미터3: <input type="text" name="param3" /><br/>

<input type="submit" value="전송" />

</form></body></html>

  

---- processFileUpload.jsp ----

 

<%@ page contentType="text/html; charset=utf-8" %> ==> 한글 깨짐 현상 일어남

==> (변경) <%@ page contentType="text/html" pageEncoding="EUC-KR" %>


<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ 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>

<%

// Check that we have a file upload request

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if( isMultipart ) {

    File temporaryDir = new File("/Temp/");

    // Create a factory for disk-based file items
    DiskFileItemFactory factory = new DiskFileItemFactory();
   
    // Set factory constraints
    factory.setSizeThreshold(1024*100);
    factory.setRepository(temporaryDir);
   
    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
   
    // Set overall request size constraint
    upload.setSizeMax(1024*1024);
   
    // Parse the request
   
    List /* FileItem */ items = upload.parseRequest(request);
   
    // Process the uploaded items
    Iterator iter = items.iterator();
   
    while (iter.hasNext()) {
   
        FileItem fileItem = (FileItem) iter.next();
       
        if (fileItem.isFormField()) {
       
            // processFormField(fileItem);
            out.println("\n폼 파라미터 : " + fileItem.getFieldName() + "=" + fileItem.getString("utf-8") + "<br/>");
        } else {
       
            // processUploadedFile(fileItem);
            out.println("\n파일 : " + fileItem.getFieldName() + "=<pre>" + fileItem.getString() + "</pre>(" + fileItem.getSize() + " bytes)<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 {
                 out.println("\ntry:::>>>>");
                    File uploadedFile = new File("/", fileName);
                    fileItem.write(uploadedFile);
                } catch(IOException ex) {}
            }
        }
    }
} else {
    out.println("인코딩 타입이 multipart/form-data 가 아님.");
}

%>

</body></html>

 

---- readExcel.jsp ----

 [ ver. 1.0 ]

 <%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.io.File,java.util.Date,jxl.*"%>
<%
Workbook workbook = Workbook.getWorkbook(new File("C:/temp/code_agent_class.xls"));

Sheet sheet = workbook.getSheet(0);
Cell a1 = sheet.getCell(0,0);
Cell b2 = sheet.getCell(1,0);
Cell c3 = sheet.getCell(2,0);

String stringa1 = a1.getContents();
String stringb2 = b2.getContents();
String stringc3 = c3.getContents();

workbook.close();
%>
<%=stringa1%>
<%=stringb2%>
<%=stringc3%>

 [ ver. 2.0 ]

 <%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.io.File,java.util.Date,jxl.*"%>

<%

try {
 Workbook workbook = Workbook.getWorkbook(new File("C:/temp/code_agent_class.xls"));
 
 Sheet sheet = workbook.getSheet(0);

 int row = sheet.getRows();
 int col = 0;
 Cell cell;

 for(int i = 1; i < row; i++) {
  col = 0;
  cell = sheet.getCell(col,i);
  String string1 = cell.getContents();

  col = 1;
  cell = sheet.getCell(col,i);
  String string2 = cell.getContents();

  col = 2;
  cell = sheet.getCell(col,i);
  String string3 = cell.getContents();
%>
  <%=string1%> /
  <%=string2%> /
  <%=string3%> <br/>
<%
 }
 
 workbook.close();
} catch (Exception e) {
 System.out.println("==========" + e.getMessage());
}
%>


반응형