파일업로드 기능 구현

꿈나무기록장·2021년 1월 24일
0

2021웹캠프정리

목록 보기
21/25
post-custom-banner

Database 테이블에 사진을 위한 column 만들기

명령어
: ALTER TABLE 테이블이름 ADD COLUMN image varchar(40);

1. Library에 cos.jar 추가

cos.jar 파일 다운

  • cos.jar파일을 다운로드
    • 압축해제 후, 폴더에 들어가면 lib폴더안에 있는 cos.jar파일 옮기기
  • pom.xml에 디펜던시로 추가하는 방법

아래 사이트에서 Maven용 디펜던시 명령어를 pom.xml에 복붙하면 된다.
maven 명령어 복사

2. upload 폴더추가


이제 이 폴더에 실제 업로드된 파일들이 저장된다.

3. fileform.jsp 생성

파일업로드 기능 구현 코어 코드

fileform.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method='post' action='fileupload.jsp' enctype="multipart/form-data">
	제목 : <input type="text" name="title" /><br />
	이미지 : <input type='file' name='photo' /><br />
	<input type='submit' value='upload' />
</form>
</body>
</html>

4. fileupload.jsp 생성

  • fileform.jsp와 함께 파일업로드 기능을 위해서 생성해야 하는 파일

fileupload.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import ="com.myapp.common.*, java.io.File" %>
<%@ page import ="com.oreilly.servlet.*" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파일 업로드 결과 </title>
</head>
<body>
<% 
	String filename = "";
	int sizeLimit = 15 * 1024 * 1024;
	
	//	상대경로를 절대경로로 가져와야 
	String realPath = request.getServletContext().getRealPath("upload");
	System.out.println(realPath);
	
	//upload 폴더가 없는 경우 폴더를 만들기
	File dir = new File(realPath);
	if (!dir.exists()) dir.mkdirs();
			
	MultipartRequest multpartRequest = null;
	multpartRequest = new MultipartRequest(request, realPath, 
			sizeLimit, "utf-8",new DefaultFileRenamePolicy());

	String title = multpartRequest.getParameter("title");
	filename = multpartRequest.getFilesystemName("photo");
%>
제목 : <%=title %><br />
파일명 : <%=filename%><br />
<img src="${pageContext.request.contextPath }/upload/<%=filename%>"
</body>
</html>

나머지 edit, delet도 수정


profile
초보자가 기록하는 곳
post-custom-banner

0개의 댓글