jsp BLOb 타입 다운로드

2013. 3. 13. 09:44

<%@page import="oracle.jdbc.driver.OracleResultSet"%>

<%@page import="com.base.SystemException"%>

<%@page import="java.io.*"%>

<%@page import="java.sql.*"%>


    <%


request.setCharacterEncoding("utf-8");

    response.reset();

    

    String conversation_ID  = request.getParameter("CLS_CONVERSATION_ID");

    String file_Seq = request.getParameter("CLS_FILE_SEQ");

Blob             emptyBlob = null;

OutputStream     outstream = null;

FileInputStream finstream = null;

ResultSet rs = null;

PreparedStatement pstmt = null;

Connection conn = null;


try {

javax.naming.Context env = new javax.naming.InitialContext();

javax.sql.DataSource source = (javax.sql.DataSource) env.lookup("baseDS");

conn = source.getConnection();

conn.setAutoCommit(false);

} catch (Exception e) {

throw new SystemException(e);

}

StringBuffer query  = new StringBuffer();


query.append("SELECT FILE_NAME, FILE_BINARY FROM SYN_XXSB_DCT_FILE WHERE CONVERSATION_ID = ? AND FILE_SEQ = ?  ");


try {

pstmt = conn.prepareStatement(query.toString());

pstmt.setString(1, conversation_ID.trim());

pstmt.setString(2, file_Seq.trim());

rs = pstmt.executeQuery();

String fileName= "";

while(rs.next()){

fileName = rs.getString(1);

oracle.sql.BLOB blob = ((OracleResultSet)rs).getBLOB(2);

InputStream is = (blob.getBinaryStream());

String fileType = fileName.substring(fileName.indexOf(".")+1,fileName.length());

response.setContentType("application/x-msdownload"); 

response.setHeader("Content-Disposition", "attachment;filename="+fileName+";");

OutputStream os = response.getOutputStream();

int size = blob.getBufferSize();

byte[] buffer = new byte[size];

int length = -1;

while((length=is.read(buffer))!=-1){

os.write(buffer,0,length);

}

os.flush();

os.close();

is.close();

}

} catch (Exception e) {

throw new SystemException(e);

}finally{

try {if (rs != null)  rs.close(); } catch (Exception ex) {}

try {if (pstmt != null) pstmt.close();} catch (Exception ex) {}

try {if (conn != null) conn.close();}  catch (Exception ex) {}

}



    

    

    %>

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 :