웹페이지 이미지 저장 하기[JSP]

웹페이지 이미지 저장 하기[JSP]

728x90

JSP에서 웹페이지에서 등록한 이미지를 서버에 저장하는 방법

JSP 웹 페이지를 제작하다 보니 이미지를 업로드해야 할 상황이 생겼다.

DB에는 경로만 등록시키고 실제 파일은 서버에 저장하는 방식으로 구현해 보았다.

사용 라이브러리

cos.jar

http://servlets.com/cos/

cos-20.08.zip을 다운로드한다.

압출을 해제하면 cos.jar이 나오게되는데 이것을 본인의 프로젝트에 있는 webapp/WEB-INF/lib에 넣으면 된다.

cos.jar을 사용하는 이유

JSP에서 cos.jar의 패키지를 사용하게 되는 이유는 cos.jar을 톰캣에서 기본적으로 지원하지 않는 외부 패키지이기 때문이다. 외부 패키지를 사용할 때는 WEB/lib에 위치해야 하며, 앞으로 사용할 multipart/form-data로 전송하는 폼에 담긴 파라미터들에 대한 이름과 값을 얻어내기 위해, 로 지정된 파일 서버상의 한 폴더에 업로드하기 위해서 특별한 컴포넌트가 필요하며 cos.jar에는 필요한 컴포넌트가 존재한다.

즉, 우리의 원활한 이미지 전송과 컨트롤을 위해 필요한 외부 패키지라는 뜻이다.

그럼 우선 이미지를 넣을 폼을 만들어 보자

fileupload.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> JSP 이미지 업로드 폼 JSP이미지 업로드 이미지 :

이미지를 업로드 할때는 form의 enctype에 multipart/form-data를 추가해주어야 한다.

만약 multipart/form-data를 추가 해주지 않으면 이미지가 저장되지 않는다.

multipart/form-data에 대해선 추후 다시 다루도록 하겠다.

fileUploadAction.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%> <%@page import="com.oreilly.servlet.MultipartRequest"%> <%@page import="test.Test"%> <%@page import="test.TestDAO"%> <% TestDAO test = new TestDAO(); int fileSize = 1024*1024*3; //3mb로 파일 크기를 제한 ServletContext context = getServletContext(); String uploadPath = context.getRealPath("/uploadFiles"); MultipartRequest multi = null; try{ multi = new MultipartRequest(request, uploadPath, fileSize, "UTF-8",new DefaultFileRenamePolicy()); String originalFile = multi.getOriginalFileName("uploadfiles"); String uploadFile = multi.getFilesystemName("uploadfiles"); }catch(Exception e){ out.write("업로드 용량 오류 또는 그 이외..." + e.getMessage()); } %>

<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>

<%@page import="com.oreilly.servlet.MultipartRequest"%>

이 두가지는 cos.jar을 추가해야만 생성된다.

728x90

from http://pypypy.tistory.com/158 by ccl(A) rewrite - 2021-11-19 12:28:01