728x90
728x90
이번에는 파일업로드를 구현해볼 것이다. 아래는 Servlet 페이지의 Download에 들어가서 cos-20.08.zip을 다운받는다.
그리고 lib 폴더 안의 jar 파일을 빼서 WEB-INF > lib 위치에 cos.jar 파일을 복붙.
일반 사이트에서 파일을 업로드할 때를 기억해보면, 이름이 같을 경우 덮어쓰기 할 것이냐고 물어본다.
_copy나 1, 2 등 원본파일명 뒤에 숫자를 붙이기도 한다. 혹은, defaultrenamepolish...메소드 등을 사용해서 해결한다.
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 |