티스토리 뷰
728x90
[xxxx-servlet.xml]
정확하게 위와 같이 지정해 준다
[write.jsp]
JSP 코딩을 할때 당연한 소리지만 항상 이름들은 꼭 대소문자를 구분해서 맞춰줘야 한다
뷰 페이지에서 id, file 이라고 지정했으면 Bean 클래스 또는 스프링에서 얘기하는 Command 클래스에서도 id, file 이라고 해줘야만 값을 제대로 받아온다
일단 file이라고 지정했다
[UploadCommand.java]
public MultipartFile getFile() {
역시 마찬가지로 settter / getter 이름을 잘 맞춰줘서 만든다
[WriteImpl.java]
/* 업로드 된 파일의 이름이 없거나, 용량이 0인 등 제대로 업로드가 되었는지
확인하는 부분은 따로 만들어 주면 된다
ex)
String fileName = upload.getFile().getOriginalFilename();
long fileSize = upload.getFile().getSize();
if(fileName == null || fileName.equals("") || fileSize <= 0) {
return null;
}
WriteImpl의 submit 메소드가 실행되면서 UploadCommand와 HttpServletRequest를 받아온다
위에서 얘기했듯이 name 들만 잘 맞추면 자동으로 값을 입력해준다
받아온 file을 새로 만든 file로 넣어준다
FileInputStream 등을 사용하지 않아도 transferTo() 를 사용하면 아주 쉽게 파일을 저장할 수 있다
아주 간단하다 ㅎ
MultiparFile 인터페이스에서 많이 쓰이는 메소드들
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
[write.jsp]
<form method="post" action="/Spring_BBS/write.chobo" enctype="multipart/form-data">
<table border="1" width="300">
<tr>
<td>제목</td>
<td><input type="text" name="title"></td>
</tr>
<tr>
<td width="100">파일첨부</td>
<td><input type="file" name="file"></td>
</tr>
<tr>
<td colspan="2" align="center" height="30">
<input type="submit" value="글쓰기" />
<input type="hidden" value="${pageNumber}" name="pageNumber" />
<input type="hidden" value="${pageNumber}" name="pageNumber" />
</td>
</tr>
</table>
</form>
JSP 코딩을 할때 당연한 소리지만 항상 이름들은 꼭 대소문자를 구분해서 맞춰줘야 한다
뷰 페이지에서 id, file 이라고 지정했으면 Bean 클래스 또는 스프링에서 얘기하는 Command 클래스에서도 id, file 이라고 해줘야만 값을 제대로 받아온다
일단 file이라고 지정했다
[UploadCommand.java]
package Spring_BBS;
import org.springframework.web.multipart.MultipartFile;
public class UploadCommand {
String id;
MultipartFile file;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public MultipartFile getFile() {
return file;
}
public void setFile(MultipartFile file) {
this.file = file;
}
}
역시 마찬가지로 settter / getter 이름을 잘 맞춰줘서 만든다
[WriteImpl.java]
@RequestMapping(method=RequestMethod.POST)
public ModelAndView submit(UploadCommand upload, HttpServletRequest request) {
/* 업로드 된 파일의 이름이 없거나, 용량이 0인 등 제대로 업로드가 되었는지
확인하는 부분은 따로 만들어 주면 된다
ex)
String fileName = upload.getFile().getOriginalFilename();
long fileSize = upload.getFile().getSize();
if(fileName == null || fileName.equals("") || fileSize <= 0) {
return null;
}
ModelAndView mav = new ModelAndView();
mav.setViewName("redirect:/list.chobo?pageNumber=" + request.getParameter("pageNumber"));
HttpSession session = request.getSession();
upload.setId((String)session.getAttribute("id"));
mvcpDao.setArticle(upload);
File file = new File("D:/Java/WorkSpace/Spring_BBS/WebContent/UpLoad/" + upload.getFile().getOriginalFilename());
try {
upload.getFile().transferTo(file);
} catch (IllegalStateException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
return mav;
}
WriteImpl의 submit 메소드가 실행되면서 UploadCommand와 HttpServletRequest를 받아온다
위에서 얘기했듯이 name 들만 잘 맞추면 자동으로 값을 입력해준다
받아온 file을 새로 만든 file로 넣어준다
FileInputStream 등을 사용하지 않아도 transferTo() 를 사용하면 아주 쉽게 파일을 저장할 수 있다
아주 간단하다 ㅎ
MultiparFile 인터페이스에서 많이 쓰이는 메소드들
메 소 드 | 내 용 |
String getName() | 파라미터 이름 |
String getOriginalFilename() | 파일 이름 |
boolean isEmpty() | 파일이 존재하지 않으면 true 반환 |
long getSize() | 파일 크기 |
byte[] getBytes() throws IOException | 파일 데이터 |
InputStream getInputStream() throws IOException | 파일 데이터를 읽어오는 InputStream을 얻어온다 사용이 끝난 후에는 알아서 잘 종료 해줄 것 |
void transferTo(File file) throws IOException | 파일 데이터를 지정한 file로 저장 |
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] 파일 다운로드 (2) | 2011.08.17 |
---|---|
[Spring] DI(Dependency Injection) 패턴 (0) | 2011.07.28 |
[Spring] 기본 설정 (1) | 2011.07.27 |
TAG
- MacOS
- 코멧
- 오류
- 데이터베이스
- 시각 차이
- 특수문자
- EL
- ibatis
- 기본
- 구매 가이드
- 함수
- 주피터 노트북
- 랜덤
- 테이블
- Android
- 스프링
- JSP
- mvc
- 자바스크립트
- window
- 스트럿츠
- 동양인
- 페이지 이동
- JavaScript
- 여성가족부
- 안드로이드
- struts
- jstl
- 파이썬
- 서양인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함
- Total
- Today
- Yesterday