-
[Spring] Spring 파일업로드 & Postman 파일업로드 테스트Spring/Spring Framework 2022. 10. 4. 15:00
1. 환경
Spring Framework
tomcat 8.5
Postman 9.31.0
2. 세팅
1) pom.xml
<!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.2</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
2) web.xml
<filter> <filter-name>MultipartFilter</filter-name> <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class> </filter> <filter-mapping> <filter-name>MultipartFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3) bean 등록
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="100000000" /> <property name="maxInMemorySize" value="100000000" /> </bean>
나는 dispatcher-servlet.xml 에 추가했다.
환경에 따라 다를 수 있음!
4) context.xml
<Context allowCasualMultipartParsing="true" path="/"> <!-- Default set of monitored resources. If one of these changes, the --> <!-- web application will be reloaded. --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> </Context>
allowCasualMultipartParsing="true" path="/" 를 추가해줘야 한다.
1~3번 설정하고 다른 사람들꺼 코드 복붙해도 오류가 와장창 나서 뭔가.. 했는데
저걸 추가 했더니 깔끔하게 실행됐다ㅎㅎ
3. 소스
@RequestMapping(value = "/fileUpload.do" ) @ResponseBody public ResultVo fileUpload(MultipartFile file, HttpServletResponse response) { ResultVo result = new ResultVo(); try { Map<String, String> dataMap = new HashMap<>(); dataMap.put("ContentType", file.getContentType()); dataMap.put("OriginalFilename", file.getOriginalFilename()); dataMap.put("Size", String.valueOf(file.getSize())); result.setData(dataMap); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return result; }
url 호출시 key값을 file로 보내기 때문에 @RequestParam("file")은 생략 가능하다.
4. Postman 파일 업로드 테스트
1) Body 선택
2) form-data 선택
3) KEY값 입력 창 오른쪽 콤보박스 선택
4) File 선택
5) Select Files를 눌러 업로드 할 파일 선택
❗ POST 방식으로 호출했습니다.
정상 호출 확인 끝~
+ 추가(PostMan 에러)
파일이 너의 디렉토리에 없다는 솰라솰라~
파일이 포스트맨에서 설정한 디렉토리에 없어서 나는 오류다
근데 그냥 호출해도 잘만 되긴 한다;;
그치만 그냥 오류가 보기 싫으니까,, 해결해야지!
1) Postman 오른쪽 상단 프로핑 옆옆에 톱니바퀴 버튼(설정 버튼. Settings)
2) SETTINGS > General
3) Location에 지정되어있는 폴더에 파일이 있어야만 오류 메시지가 안 뜬다
'Spring > Spring Framework' 카테고리의 다른 글
[SPRING] Spring + MariaDB + Mybatis 연결하기! (0) 2020.05.22