fileDownload.jsp

 | JSP
2012. 5. 8. 18:14

경로  root/common/download.jsp 

받는 파라미터 ./ pds 의 pds_no //파라미터 네임 : file_no

  1. <%@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
Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :