-
[SPRING]09SEP21SPRING 2021. 9. 9. 13:53
파일업로드하기
<%@ 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> <h1>글 등록</h1> <a href="logout.do">Log-out</a> <hr> <form action="insertBoard.do" method="post"> <table border="1" cellpadding="0" cellspacing="0"> <tr> <td bgcolor="orange" width="70">제목</td> <td align="left"><input type="text" name="title" /></td> </tr> <tr> <td bgcolor="orange">작성자</td> <td align="left"><input type="text" name="writer" size="10" /></td> </tr> <tr> <td bgcolor="orange">내용</td> <td align="left"><textarea name="content" cols="40" rows="10"></textarea></td> </tr> <tr> <td bgcolor="orange">업로드</td> <td><input type="file" name="uploadFile"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value=" 새글 등록 " /></td> </tr> </table> </form> <hr> <a href="getBoardList.do">글 목록 가기</a> </body> </html>
jsp에 업로드 부분 추가하기
private int seq; private String title; private String writer; private String content; private Date regdate; private int cnt; private String searchCondition; private String searchKeyword; private MultipartFile uploadFile;
MultipartFile 추가하기
pom.xml에 라이브러리 추가하기
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <context:component-scan base-package="com.springbook.view"></context:component-scan> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> </bean> </beans>
스프링 컨트롤러가 파일을 받을 수 있도록 해주는 multipartResolver 빈 객체를 스프링에 등록한다.
MultipartResolver는 Multipart형식으로 데이터가 전송된 경우, 해당 데이터를 스프링 MVC에서 사용할 수 있도록 변환해준다. (DispatcherSerlvet 은 이름이 "multipartResolver"인 빈을 사용하기 때문에 다른 이름을 지정하면 안된다)
MultipartResolver는 Multipart 객체를 컨트롤러에 전달하는 역할을 한다.
@Controller @SessionAttributes("board") public class BoardController { @Autowired private BoardService boardService; @RequestMapping("/insertBoard.do") public String insertBoard(BoardVO vo) throws IllegalStateException,IOException{ System.out.println("run insertBoard"); MultipartFile uploadFile = vo.getUploadFile(); if(!uploadFile.isEmpty()) { String fileName = uploadFile.getOriginalFilename(); uploadFile.transferTo(new File("D:/"+fileName)); } boardService.insertBoard(vo); return "redirect:getBoardList.do"; } ... }
insert된 파일은 BoardController에 적어둔 경로에 업로드된다.
728x90'SPRING' 카테고리의 다른 글
[SPRING] 03SEP21_View Resolver (0) 2021.09.03 [SPRING] 03SEP21_2 / @annotation (0) 2021.09.03 [SPRING]MVC 프레임워크(01SEP21 ) (0) 2021.09.02 [SPRING] DB 사용을 위한 환경설정과 JDBC Template(service와 serviceImpl) (0) 2021.08.26 [SPRING] pointcut 표현식 (0) 2021.08.25