[JSP]파일 업로드 다운로드 페이지

안요한·2022년 6월 17일
0

JSP

목록 보기
12/17
post-thumbnail

파일 업로드를 위한 jar파일 다운로드

  • 3개의 파일을 WEB_INF → lib 폴더에 복사해준다.

파일 업로드를 위한 페이지 fileSelect.jsp

  • 파일에 input의 type을 “file”로 설정에 파일을 선택할 수 있게 함
  • submit으로 전송
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<h2> 파일 업로드 - 선택 페이지 </h2>

<form method="post" enctype="multipart/form-data" action="fileUpload.jsp">
	<table border="1">
		<tr>
			<th> 이름 </th>
			<td> <input type="text" name="name"> </td>
		</tr>
		<tr>
			<th> 제목 </th>
			<td> <input type="text" name="title"> </td>
		</tr>
		<tr>
			<th rowspan="2"> 파일 </th>
			<td> <input type="file" name="upload1"> </td>
		</tr>
		<tr>
			<td> <input type="file" name="upload2"> </td>
		</tr>
		<tr>
			<th colspan="2">
				<input type="submit" value="전송">
				<input type="reset" value="취소">
			</th>
		</tr>	
	</table>
</form>

파일업로드 처리를 위한 페이지 fileUpload.jsp

  • path 객체를 만들어 application.getRealPath 메소드를 통해 “/save”로 경로를 설정해줌.
  • File 내장함수에 path객체를 받아 디렉토리 설정
  • MutipartRequest 객체에 매개변수로 요청, 경로, 사이즈, 글변환, 파일명을 받아준다.
<%@page import="java.net.URLEncoder"%>
<%@page import="java.io.File"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<h2> 파일 업로드 - 처리 페이지 </h2>
<%
	String path = application.getRealPath( "/save" );
	new File( path ).mkdir();
%>
저장 경로 : <%=path%> <br>
<%
	MultipartRequest multi 
		= new MultipartRequest( request, path, 1024*1024*5, "utf-8", new DefaultFileRenamePolicy() );
	
	String originName1 = multi.getOriginalFileName( "upload1" );
	String originName2 = multi.getOriginalFileName( "upload2" );
	String systemName1 = multi.getFilesystemName( "upload1" );
	String systemName2 = multi.getFilesystemName( "upload2" );
%>
파일이름 1 : <%=originName1%> <br>
저장이름 1 : <%=systemName1%> <br>
파일이름 2 : <%=originName2%> <br>
저장이름 2 : <%=systemName2%> <br>

<%
	String name = multi.getParameter( "name" );
	String title = multi.getParameter( "title" );
%>
이름 : <%=name%> <br>
제목 : <%=title%> <br>

<br>
<h2> 파일 다운로드 </h2>
<%--
파일 1 : <a href="/JSP/save/<%=systemName1%>"><%=originName1%></a> <br>
파일 2 : <a href="/JSP/save/<%=systemName2%>"><%=originName2%></a> <br>
--%>

<%
	String originName11 = URLEncoder.encode( originName1, "utf-8" );
	String systemName11 = URLEncoder.encode( systemName1, "utf-8" );
	String originName22 = URLEncoder.encode( originName2, "utf-8" );
	String systemName22 = URLEncoder.encode( systemName2, "utf-8" );
%>
파일 1 : <a href="fileDownload.jsp?originName=<%=originName11%>&systemName=<%=systemName11%>">
			<%=originName1%></a> <br>
파일 2 : <a href="fileDownload.jsp?originName=<%=originName22%>&systemName=<%=systemName22%>">
			<%=originName2%></a> <br>

처리과정 이미지

  • 파일을 선택해서 전송을 누르게 되면

  • 정상적으로 파일이 업로드 되고

  • 저장 경로로 이동하게 되면

- 정상적으로 파일이 경로로 들어온것을 확인할 수 있다.
profile
걍이렇게돼브렀다리

0개의 댓글