
<%
@ page import="com.jstrd.htgl.common.Htglcommon" %>

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

<%
String mineType = "text/plain";
String subject = request.getParameter("subject");
String name = new String(request.getParameter("name").getBytes("ISO8859-1"));
if( subject != null )
{
Htglcommon bigText = new Htglcommon();
byte[] bts = bigText.selectText(subject,name);
if( bts != null )
{
String ext = bigText.docType;
if( ext != null )
{
mineType = "";
if( "pdf".equalsIgnoreCase(ext))
{
mineType = "application/pdf";
}
else if( "xls".equalsIgnoreCase(ext))
{
mineType = "application/vnd.ms-excel";
}
else if( "doc".equalsIgnoreCase(ext))
{
mineType = "application/msword";
}
else if( "gif".equalsIgnoreCase(ext))
{
mineType = "image/gif";
}
else if( "jpg".equalsIgnoreCase(ext))
{
mineType = "image/jpeg";
}
else if( "bmp".equalsIgnoreCase(ext))
{
mineType = "image/x-bmp";
}
else if( "png".equalsIgnoreCase(ext))
{
mineType = "image/png";
}
else if( "ppt".equalsIgnoreCase(ext))
{
mineType = "application/vnd.ms-powerpoint";
}
else if( "txt".equalsIgnoreCase(ext))
{
mineType = "text/plain";
}
else if( "zip".equalsIgnoreCase(ext))
{
mineType = "application/zip";
}
else if( "rar".equalsIgnoreCase(ext))
{
mineType = "application/zip";
}
if( mineType.equals("") )
{
mineType = application.getMimeType("temp." + ext);
}
response.reset();
ServletOutputStream stream = response.getOutputStream();
//response.addHeader("Content-Disposition","attachment; filename="+ URLEncoder.encode(bigText.docName,"gb2312"));
response.setContentType(mineType + "; charset=gb2312");
stream.write(bts);
stream.flush();
stream.close();
bts = null;
}
}
}
%>
package com.jstrd.htgl.common;

import java.util.Calendar;
import java.util.GregorianCalendar;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.exp.dao.DBConnection;
import com.exp.dao.DBConnectionFactory;
import com.exp.dao.EXPSQLException;
import com.exp.dao.dialect.Dialect;
import com.exp.dao.dialect.OracleDialect;


public class Htglcommon
{
public transient String docType = "";
public transient String docName = "";

public Htglcommon()
{
}


/** *//**
* 查询数据(正文)
*
* @param subject
* 数据对应主题
* @return 如果数据不存在,则返回null
* @throws EXPSQLException
*/

public byte[] selectText(String subject,String strName) throws EXPSQLException
{
DBConnection dbConnection = this.getDBConnection();
Connection con = dbConnection.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String strString = "";

try
{
Dialect dialect = dbConnection.getDialect();

if (dialect instanceof OracleDialect)
{
ps = con.prepareStatement("select file_body,file_name from sys_file f,flow_inst s where f.flow_inid=s.flow_inid and f.file_name=s.doc_name and f.flow_inid=? and f.file_name=?");
ps.setString(1, subject);
ps.setString(2, strName);
rs = ps.executeQuery();

if (rs.next())
{
byte[] bts = rs.getBytes(1);
//Blob blob = rs.getBytes(1);
strString = rs.getString(2);
this.docName = strString;
this.docType = strString.substring(strString.lastIndexOf(".")+1);
//byte[] bts = blob.getBytes((long) 1, (int) blob.length());
rs.close();
ps.close();
return bts;
}
rs.close();
ps.close();

} else
{
ps = con.prepareStatement("select file_body,file_name from sys_file f,flow_inst s where f.flow_inid=s.flow_inid and f.file_name=s.doc_name and f.flow_inid=? and f.file_name=?");
ps.setString(1, subject);
ps.setString(2, strName);
rs = ps.executeQuery();

if (rs.next())
{
byte[] bts = rs.getBytes(1);
strString = rs.getString(2);
this.docName = strString;
this.docType = strString.substring(strString.lastIndexOf(".")+1);
rs.close();
ps.close();
return bts;
}
rs.close();
ps.close();
}
return null;

} catch (SQLException sqlE)
{
throw new EXPSQLException(sqlE);

} finally
{
dbConnection.close();
}
}


protected DBConnection getDBConnection() throws EXPSQLException
{
return DBConnectionFactory
.createDBConnection("WorkFlow");
}

}
posted @
2007-02-09 17:53
blueKnight
Views(
691)
Comments()
收藏
举报