728x90
728x90

이번에는 파일업로드를 구현해볼 것이다. 아래는 Servlet 페이지의 Download에 들어가서 cos-20.08.zip을 다운받는다. 

https://servlets.com/cos

 

그리고 lib 폴더 안의 jar 파일을 빼서 WEB-INF > lib 위치에 cos.jar 파일을 복붙.

 

 

 

일반 사이트에서 파일을 업로드할 때를 기억해보면, 이름이 같을 경우 덮어쓰기 할 것이냐고 물어본다.
_copy나 1, 2 등 원본파일명 뒤에 숫자를 붙이기도 한다. 혹은, defaultrenamepolish...메소드 등을 사용해서 해결한다.

 

fileSelect.jsp

 

 


 

fileSelect.jsp

파일을 서버로 보내기 위해서는 방식이 무조건 post 여야 한다. get방식은 절대 쓸 수 없다.
그리고 enctype=... 부분도 꼭 필요하다.

<!-- fileSelect.jsp -->
<%@page contentType="text/html; charset=EUC-KR" %>
<!-- enctype 속성:  form을 전송할때 사용할 인코딩 방법 지정-->
<form method="post" action="viewPage.jsp" enctype="multipart/form-data">
user : <input name="user" value="홍길동"><br/>
title : <input name="title" value="파일업로드"><br/>
file : <input type="file" name="uploadFile"><br/>
<input type="submit" value="UPLOAD">
</form>

 

 

 

viewPage.jsp

<%@page import="java.io.File"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<% 
	request.setCharacterEncoding("EUC-KR"); 
	final String saveFolder = "C:/Jsp/myapp/WebContent/fileupload/filestorage";
	final String encoding = "EUC-KR";
	final int maxSize = 10*1024*1024; //10mb
	try{
		//파일이 서버에 업로드되는 시점은 MultipartRequest 객체 생성 순간이다. 
		MultipartRequest multi = 
				new MultipartRequest(request, saveFolder, maxSize, encoding, 
						new DefaultFileRenamePolicy());
		//request가 되는 순간 null로 변한다.
		//out.print("성공");
		String fileName = multi.getFilesystemName("uploadFile");
		String original = multi.getOriginalFileName("uploadFile");
		//filename은 중복이름이 들어올 경우 자동으로 index가 붙는데, index되기 전의 원본명
		String type = multi.getContentType("uploadFile");
		File f =  multi.getFile("uploadFile");
		int len = 0;
		if(f!=null) {
			len = (int)f.length();
		}
		String user = multi.getParameter("user");
		String title = multi.getParameter("title");
%>
저장된 파일 : <%=fileName%><br/>
실제 파일 : <%=original%><br/>
파일 타입: <%=type%><br/>
파일 크기 : <%=len%><br/>
user : <%=user%><br/>
title : <%=title%><br/>
<a href="fileSelect.jsp">파일선택</a>
<%
	}catch (Exception e) {
		e.printStackTrace();
	}
%>

 

 

 

fileSelect.jsp

이어서 작성 예정
728x90
728x90

'Java Friends > JSP' 카테고리의 다른 글

jsp로 투표 프로그램 만들기  (0) 2019.07.22
JSP 방명록 구현하기  (0) 2019.07.15
JSP 회원가입, 로그인, 로그아웃 기능 구현  (1) 2019.07.11
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v