<beans:bean id="uploadPath" class="java.lang.String">
<beans:constructor-arg value="c:/zzz/upload"></beans:constructor-arg>
</beans:bean>
설정
pom.xml에서추가하기
<!-- 파일업로드 라이브러리 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
import되었나 Maven Dependencies에서 확인
servlet-context.xml에서 추가하기
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="10485760"></beans:property>
</beans:bean>
<beans:bean id="uploadPath" class="java.lang.String">
<beans:constructor-arg value="c:/zzz/upload"></beans:constructor-arg>
</beans:bean>
jsp에서
enctype을 준다
input type을 file으로 한다.
<form name="frm" action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="저장">
</form>
controller에서 이 부분은 servlet-centext에
@Resource(name="uploadPath") //servlet-context에 정의한 uploadPath를 path에 저장하겠다
private String path;
이부분 id를 뜻한다.
<beans:bean id="uploadPath" class="java.lang.String">
<beans:constructor-arg value="c:/zzz/upload"></beans:constructor-arg>
</beans:bean>
controller는 uploadFile 함수를 정의
private String uploadFile(String originalName, byte[] fileData)
throws Exception{
//이름을 유니크하게 만드는 함수
UUID uid=UUID.randomUUID();
String savedName=uid.toString()+"-"+ originalName;
//랜덤이름 진짜긴이름+'-진짜파일이름'
File target=new File(path,savedName);
//받는 경로,랜덤이름-진짜파일이름
FileCopyUtils.copy(fileData, target);
//fileData를 target에 저장
return savedName;
실제로는 이렇게 사용 uploadFile을 함수로 안만들고 바로 사용해도된다.
자주 쓰일경우 함수로 만든다.
@RequestMapping(value="upload",method=RequestMethod.POST)
public void uploadPost(MultipartFile file) throws Exception{
//MultipartFile에는 사진에 대한 정보가 담겨있음
System.out.println("upload post..............................");
//여기로 오는지 확인한다.
System.out.println("file name:" + file.getOriginalFilename());
//파일이름을 콘솔에 출력
System.out.println("file size:" + file.getSize());
//파일사이즈
System.out.println("file type:" + file.getContentType());
//파일 타입
System.out.println("path:"+ path);
//패쓰를 찍는다
String savedName=uploadFile(file.getOriginalFilename(),file.getBytes());
System.out.println("savedFile:"+savedName);
}
'spring' 카테고리의 다른 글
파일업로드 클래스 (0) | 2019.12.05 |
---|---|
파일업로드 (0) | 2019.11.29 |
게시판에 댓글을 달면 게시글의 댓글수가 추가됩니다. (0) | 2019.11.28 |
은행계좌 프로그램 만들기 (0) | 2019.11.28 |
게시글 댓글 조회수를 추가한다. (0) | 2019.11.27 |