업로드용 소스
@RequestMapping(value = "/create", method = RequestMethod.GET)
public String precreate() {
return "reboard/update";
}
// 글쓰기
// create 를 POST 방식으로 받게끔
// public String create(ReboardDto dto) 해서 dao.create 하세요
@RequestMapping(value = "/create", method = RequestMethod.POST)
public String create(ReboardDto dto) throws Exception {
// 파일 업로드 체크
MultipartFile f = dto.getFile();
if (!f.isEmpty()) { // 파일 업로드가 됐다면
String orgname = f.getOriginalFilename();
String newname = orgname + System.currentTimeMillis()
+ f.getSize();
// String path = servletContext.getRealPath("/resources");
// d:/upload 폴더를 생성한다.
// server에 clean을 하면 resources 경로의 것이 다 지워지기 때문에
// 다른 경로로 잡는다(실제 서버에서는 위의 방식으로)
String path = "c:/upload";
System.out.println("path : "+ path);
File file = new File(path + File.separator + newname);
dto.setOrgname(orgname);
dto.setNewname(newname);
f.transferTo(file);
}
if (dao.create(dto))
System.out.println("삽입완료");
return "redirect:/re/list";
}
다운로드용 소스
@RequestMapping(value="/down/{no}",method=RequestMethod.GET)
public void down(@PathVariable String no
, HttpServletResponse response) throws Exception {
ReboardDto dto = dao.read(no);
String orgname = dto.getOrgname();
String newname = dto.getNewname();
// MIME Type 을 application/octet-stream 타입으로 변경
// 무조건 팝업(다운로드창)이 뜨게 된다.
response.setContentType("application/octet-stream");
// 브라우저는 ISO-8859-1을 인식하기 때문에
// UTF-8 -> ISO-8859-1로 디코딩, 인코딩 한다.
orgname = new String(orgname.getBytes("UTF-8"), "iso-8859-1");
// 파일명 지정
response.setHeader("Content-Disposition", "attachment; filename=\""+orgname+"\"");
OutputStream os = response.getOutputStream();
// String path = servletContext.getRealPath("/resources");
// d:/upload 폴더를 생성한다.
// server에 clean을 하면 resources 경로의 것이 다 지워지기 때문에
// 다른 경로로 잡는다(실제 서버에서는 위의 방식으로)
String path = "c:/upload";
FileInputStream fis = new FileInputStream(path + File.separator + newname);
int n = 0;
byte[] b = new byte[512];
while((n = fis.read(b)) != -1 ) {
os.write(b, 0, n);
}
fis.close();
os.close();
}
'Dev. 스프링 > 참고소스 및 예제' 카테고리의 다른 글
로그인/로그아웃시 현재 페이지 그대로 있기 (0) | 2012.12.03 |
---|---|
Spring MVC 패턴에서 ajax를 활용한 실시간 댓글달기 소스 (44) | 2012.11.28 |
Spring, Ajax, JQuery UI 를 이용한 자동 완성(Autocomplete) 텍스트 박스 만들기 (2) | 2012.10.17 |
spring AOP 활용한 Logger 이용 로그기록 남기기 (0) | 2012.10.16 |
스프링(Spring)에서 동적쿼리(Dynamic Query) 사용 예제 (0) | 2012.10.08 |