[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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바