[Spring] File Upload

2024. 5. 20. 19:12·Spring

https://mvnrepository.com

위 링크를 통해 maven 의존성을 추가해 준다.

<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.1</version>
</dependency>
				

<dependency>
	<groupId>commons-io</groupId>
	<artifactId>commons-io</artifactId>
	<version>2.4</version>
</dependency>

 

servlet-context.xml에 파일이 업로드될 경로 설정 및 파일 업로드에 사용할 설정을 해준다.

<resources mapping="/upload/**" location="/resources/upload/" />
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<beans:property name="maxUploadSize" value="5000000"/>
	<beans:property name="defaultEncoding" value="utf-8"/>
</beans:bean>

 

그 후에는

<input type="file" name="upload">

이와 같은 형태로 파일을 추가할 수 있는데 이때 보낼 form태그에 

 

enctype="multipart/form-data"

 

를 필수로 추가해 주어야 한다.

 

자바 컨트롤러 쪽에 넘어온 데이터는 

@PostMapping("/upload1")
	public String uploadPhoto1(
			@RequestParam String title,
			@RequestParam("upload") MultipartFile upload,
			HttpServletRequest request,
			Model model
			)
	{
		String realFolder=request.getSession().getServletContext().getRealPath("/resources/upload");
		System.out.println(realFolder);
		
		String fileName=upload.getOriginalFilename();
		fileName=UUID.randomUUID()+".jpg";
		
		try {
			upload.transferTo(new File(realFolder+"/"+fileName));
			model.addAttribute("title", title);
			model.addAttribute("photo", fileName);
			
		} catch (IllegalStateException | IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return "upload/resultphoto1";
	}

이와 같이 MultipartFile 형태로 데이터를 받아주고, 

fileName=UUID.randomUUID()+".jpg"; 를 통해 이미지의 중복 저장을 방지할 수 있다.

저작자표시 (새창열림)

'Spring' 카테고리의 다른 글

[Spring Boot] 외장 톰캣 웹 배포하기(apache-tomcat)  (0) 2024.09.25
[Spring] web.xml 한글 필터  (0) 2024.05.20
[Spring] Maven Project  (0) 2024.05.20
[Spring] Annotation(Lombok)  (0) 2024.05.20
[Spring] MVC  (0) 2024.05.20
'Spring' 카테고리의 다른 글
  • [Spring Boot] 외장 톰캣 웹 배포하기(apache-tomcat)
  • [Spring] web.xml 한글 필터
  • [Spring] Maven Project
  • [Spring] Annotation(Lombok)
whkim98
whkim98
꾸준히 내 것으로 만드는 게시글을 작성하자
  • whkim98
    내 일기장
    whkim98
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • Project
        • Insty
        • ERP
      • Cloud
        • NAVER CLOUD Web DevOps
        • Public
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
        • 리눅스마스터
        • AWS
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
      • DevOps
  • 블로그 메뉴

    • 홈
    • GitHub
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    javascript
    html
    AdSP
    SQLD
    jsp
    Postman
    정보처리기사
    node
    해시 암호화
    spring
    web
    Tomcat
    RDBMS
    Python
    eGov
    annotation
    Java
    코테
    gitbash
    django
    AWS
    코딩
    프로그래머스
    React
    Cloud
    git
    js
    코딩테스트
    github
    CORS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
whkim98
[Spring] File Upload
상단으로

티스토리툴바