-
서블릿 파일 업로드 하기Servlet-JSP 2021. 11. 24. 13:44
먼저 파일 하나를 다운 받아 준다.
다운 받은 후 이클립스내에서 webapp->lib 폴더에 넣어준다.
사진 업로드 할 때 cos 라는 라이브러리가 가장 간단하게 사용 할 수 있는 라이브러리이다.
이거 외에도 commons-fileupload.jar 이랑 commons-io.jar를 이용해서도 업로드 해 줄 수 있다.
(참고로 이 두가지는 Apache API이다.)

그리고 업로드 폴더를 하나 만들어서 JSP 파일을 작성한다.

enctype="multipart/formdata"는 파일 업로드시 필수로 들어가야 하는 속성이다.
Servlet 파일을 만들어 준다.
먼저 forward 시켜 줄 위치를 지정 시켜 준다.
@WebServlet("/upload") public class uploadcontroller extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //요청이 들어오면 get으로 먼저 들어옴 //포워드 시켜 준다.0 String view = "/WEB-INF/jsp/upload/index.jsp"; RequestDispatcher rd = request.getRequestDispatcher(view); rd.forward(request, response);protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MultipartRequest multi = new MultipartRequest(request, "c:\\Users\\HP\\upload", //저장 위치 1024*1024*10 ,"utf-8", // byte단위의 파일크기 new DefaultFileRenamePolicy()); //이름이 중복 되면 새로운 이름을 생성 해 주는 객체 String title = multi.getParameter("title"); String fileName = multi.getFilesystemName("uploadFile"); System.out.println("일반 텍스트 데이터 : " + title); System.out.println("업로드 된 파일의 이름 : " + fileName);System.out.println는 아까 우리가 index파일에 인풋 두개를 작성 했고 두개의 이름이 달라서 콘솔창에서 확인하기 위한 용도로 작성 해 준다.

제대로 구동 된다면 아까 지정 해 준 위치에 전송한 사진이 업로드 된 것을 확인 할 수 있다.
그 다음 업로드 된 파일을 다운로드 받거나 하는 과정을 해보자
서버는 자신의 영역밖에 접근 못하기 때문에 (webapp쪽) 그쪽으로 경로를 다시 바꿔주자
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MultipartRequest multi = new MultipartRequest(request, request.getServletContext().getRealPath("/upload"), //저장 위치 webapp쪽으로 변경 1024*1024*10 ,"utf-8", // byte단위의 파일크기 new DefaultFileRenamePolicy()); //이름이 중복 되면 새로운 이름을 생성 해 주는 객체 String title = multi.getParameter("title"); String fileName = multi.getFilesystemName("uploadFile"); System.out.println("RealPath : " + request.getServletContext().getRealPath("/upload"));//출력문을 통해 저장 위치 확인 System.out.println("일반 텍스트 데이터 : " + title); System.out.println("업로드 된 파일의 이름 : " + fileName);이클립스에서 Tomcat 서버를 실행 할 때
workspace에 있는 프로젝트를 복사해서 별도의 공간에 배치한다.(배포)
배포가 완료되면 Tomcat 서버는 배포 위치의 코드와 파일을 사용하여 동작하게 된다.
'Servlet-JSP' 카테고리의 다른 글
Annotation을 이용한 URL 매핑하기 (0) 2022.01.07 Eclipse로 Servlet 서버 만들기 (0) 2022.01.07 Servlet/JSP 이란 (0) 2022.01.07 JSP로 어설픈 구구단 만들기 (0) 2021.11.23 톰캣-이클립스 서버 구성하기 (0) 2021.11.23