COS 라이브러리
1. 접속후에 cos-26Dec2008.zip 파일 다운로드
2-1. 압축파일 풀고 tomcat 라이브러리 폴더에 복사한다.
2-2. 만약 특정 웹 프로젝트에만 사용할려면 WEB-INF 폴더 안 lib 폴더에 cos.jar파일을 복사한다.
참고할 예제
uploadForm.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h2>파일 업로드</h2> <form action="upload.jsp" method="POST" enctype="multipart/form-data" > <label>설명</label><input type="text" name="comment" /><br> <input type="file" name="file1" /><br> <input type="file" name="file2" /><br> <input type="submit" value="전송" /> </form> </body> </html> | cs |
upload.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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <%@page import="java.util.Enumeration"%> <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.oreilly.servlet.MultipartRequest"%> <%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%> <% MultipartRequest multi = null; String savepath = request.getRealPath("upload"); // WebContent 폴더에 upload 폴더를 생성하고 실행할 것 // D:\ws\jsp\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\TestPrj16\"upload" System.out.println(savepath); int limitSize = 15 * 1024 * 1024 ; // 최대 Upload 크기 15M byte String comment = ""; String filename1 = ""; String orgFileName1 = ""; String filename2 = ""; String orgFileName2 = ""; try { multi = new MultipartRequest(request, // 일반 request (text) 정보 savepath, // 업로드된 파일의 저장 경로 limitSize, // 파일 최대 크기 제한 "utf-8", // encoding new DefaultFileRenamePolicy()); // 중복파일 처리 comment = multi.getParameter("comment"); // comment = request.getParameter("comment"); // null // 이유는 request를 MultipartRequest() 가 가로챈다 // 여러파일 처리 Enumeration files = multi.getFileNames(); String file1 = (String) files.nextElement(); filename1 = multi.getFilesystemName(file1); orgFileName1 = multi.getOriginalFileName(file1); String file2 = (String) files.nextElement(); filename2 = multi.getFilesystemName(file2); orgFileName2 = multi.getOriginalFileName(file2); } catch (Exception e) { e.printStackTrace(); } %> <h2>넘어온 파일 정보</h2> <p>설명:<%=comment %></p> <p>실제 파일명1:<%=filename1 %> <a href="file_down.jsp?fn=<%=filename1 %>"> <%=orgFileName1 %>다운로드</a></p> <p>원본 파일명1:<%=orgFileName1 %></p> <p>실제 파일명2:<%=filename2 %> <a href="file_down.jsp?fn=<%=filename2 %>"> <%=orgFileName2 %>다운로드</a></p> <p>원본 파일명2:<%=orgFileName2 %></p> | cs |
file_down.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 41 42 43 44 45 | <%@page import="java.io.FileInputStream"%> <%@page import="java.io.File"%> <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("utf-8"); // 한글처리(POST) String fn = request.getParameter("fn"); System.out.println(fn); String savepath = "upload"; ServletContext context = this.getServletContext(); String sDownloadPath = context.getRealPath(savepath); String sFilePath = sDownloadPath + "\\" + fn; byte [] b = new byte[4096]; File oFile = new File(sFilePath); FileInputStream fis = new FileInputStream(oFile); String sMimeType = getServletContext().getMimeType(sFilePath); System.out.println("MimeType: " + sMimeType); if( sMimeType == null ) sMimeType = "application/octet-stream"; response.setContentType(sMimeType); // 한글 파일명 깨지는 것 방지 String sEncoding = new String(fn.getBytes("utf-8"), "8859_1"); // 이부분이 모든 파일 링크를 클릭했을 때 // 다운로드 화면이 출력되게 처리하는 부분 response.setHeader("Content-Disposition", "attachment; filename=" + sEncoding); ServletOutputStream out2 = response.getOutputStream(); int numRead; while((numRead = fis.read(b, 0, b.length))!= -1) { out2.write(b, 0, numRead); } out2.flush(); out2.close(); fis.close(); // 한글 파일이 다운로드 되지 않으면 \ // server.xml : // <Connector /> 태그에 URIEncoding="utf-8" 추가하면된다 %> | cs |
'Datebase' 카테고리의 다른 글
쿠키(Cookie)와 세션(Session) - JSP (0) | 2018.01.31 |
---|---|
MySQL 한글 깨짐 현상 해결하기(UTF8 기본값 설정하기) (0) | 2018.01.30 |
JDBC(Java Database Connectivity) - MySQL, Oracle DB 연동 (0) | 2018.01.30 |
MySQL 무설치 버전 설치하기 - Window (0) | 2018.01.26 |
SQL문 - DDL(Data Definition Language) (1) | 2018.01.25 |