경로 root/common/download.jsp
받는 파라미터 ./ pds 의 pds_no //파라미터 네임 : file_no
- <%@page import="kr.or.ddit.pds.vo.PdsBean"%>
<%@page import="kr.or.ddit.pds.dao.PdsDaoMyBatis"%>
<%@page import="kr.or.ddit.pds.dao.IPdsDao"%>
<%@ page language="java" pageEncoding="utf-8" %>
<%@ page trimDirectiveWhitespaces="true" %>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.BufferedOutputStream"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page import="java.io.File"%>
<%
String file_no = request.getParameter("file_no");
// bo_id 검증 필요!!
if(file_no == null || file_no.compareTo("") == 0 ){
// throw new Exception("다운로드 에러~~~~");
response.setHeader("Content-type", "text/html");
%>
<%@page import="java.sql.SQLException"%>
<script type="text/javascript">
<!--
alert("너 누구야... ");
history.back();
//-->
</script>
<%
return;
} // if(!StringUtils.isNumeric(bo_no))
IPdsDao pdsDao = new PdsDaoMyBatis();
PdsBean bean = pdsDao.findByPk(Integer.parseInt(file_no));
if(bean.getPds_realpath() == null || "".equals(bean.getPds_realpath())){
// throw new Exception("파일이 없습니다.~~~~");
response.setHeader("Content-type", "text/html");
// response.setStatus(404); // 404 = HttpServletResponse.SC_NOT_FOUND;
%>
<script type="text/javascript">
<!--
alert("파일이 존재하지 않는 글입니다.");
history.back();
//-->
</script>
<%
return;
}
//dao.downCount(Integer.parseInt(bo_no)); // 숙제 구현
// 경로, 실제 저장된 파일을 읽는다
//String upPath = application.getRealPath("/upload");
String upPath = "c:\\upload";
String fileName = bean.getPds_userfile(); // 사용자가 올렸던 이름
File file = new File(bean.getPds_realpath());
byte b[] = new byte[2048];
if (file.length() > 0 && file.isFile()) {
String strClient = request.getHeader("User-Agent");
if (strClient.indexOf("MSIE 5.5") > -1) {
response.setHeader("Content-Disposition", "filename="
+ (new String(fileName.getBytes("euc-kr"), "iso-8859-1")) + ";");
} else {
response.setHeader("Content-Disposition", "attachment;filename="
+ (new String(fileName.getBytes("euc-kr"), "iso-8859-1")) + ";");
}
response.setHeader("Content-type", "application/octet-stream");
response.setHeader("Content-Length", "" + file.length());
response.setHeader("Content-Description", "Inna Site");
BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
int read = 0;
try {
while ((read = fin.read(b)) != -1) {
outs.write(b, 0, read);
}
// 성공적으로 내보냈으니까. 다운횟수 증가
//pdsDao.incrementDownHit(bean.getPds_no());
//pdsDao.incrementDownHit(bean.getPds_downhit());
pdsDao.incrementDownHit(bean.getPds_no());
//pdsDao.incrementDownHit(bean.getPds_no());
outs.close();
fin.close();
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
if (outs != null) outs.close();
if (fin != null) fin.close();
}
} else {
// response.setStatus(404); // 404 = HttpServletResponse.SC_NOT_FOUND;
response.setHeader("Content-type", "text/html");
// response.setStatus(404); // 404 = HttpServletResponse.SC_NOT_FOUND;
%>
<script type="text/javascript">
<!--
alert("[<%=bean.getPds_userfile()%>]파일이 서버에 존재하지 않습니다.");
history.back();
//-->
</script>
<%
return;
}
%>
이 글은 스프링노트에서 작성되었습니다.
'JSP' 카테고리의 다른 글
FileUpLoad (0) | 2012.05.08 |
---|---|
엑셀파일다운로드 (0) | 2012.05.08 |
FileDownLoad (0) | 2012.05.08 |
cubrid-dbcp설정. (0) | 2012.05.08 |
ERROR&cokie (0) | 2012.05.08 |