public String openFile() throws IOException, Exception
{
Connection conn = cp.getConnection();
conn.setAutoCommit(false);
try {
PreparedStatement pstmt =conn.prepareStatement(sql);
ResultSet resultSet = pstmt.executeQuery();
if(resultSet.next()){
HttpServletResponse response = ServletActionContext.getResponse();
response.reset();
String postfixName = resultSet.getString("Docsuffixalname");
// Blob blob = resultSet.getBlob("doccontent");
String postfix = "";
if(null != postfixName && !"".equals(postfixName)){
postfix = postfixName.substring(postfixName.lastIndexOf(".")+1);
if("doc".equals(postfix)){
response.setContentType("application/vnd.msword;charset=utf-8");
}else if("xls".equals(postfix)){
response.setContentType("application/vnd.ms-excel;charset=utf-8");
}else if("txt".equals(postfix)){
response.setContentType("text/plain;charset=utf-8");
}else if("pdf".equals(postfix)){
response.setContentType("application/pdf;charset=utf-8");
}
response.setHeader("Content-Disposition","attachment;filename=\""+ java.net.URLEncoder.encode(postfixName.replaceAll(" ", ""), "UTF-8")+ "\"");
OutputStream os = response.getOutputStream();
InputStream istream = resultSet.getBinaryStream("doccontent");
int size =0 ;
while((size = istream.read(Buffer)) != -1){
os.write(Buffer, 0, size);
}
os.flush();
os.close();
}
}
} catch (Exception e) {
}
return null;
}
{
//获取数据库连接
//此方法只适用于jdbc的操作
SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) new Configuration().configure().buildSessionFactory();
ConnectionProvider cp = ((SessionFactoryImplementor)sessionFactory).getConnectionProvider();Connection conn = cp.getConnection();
conn.setAutoCommit(false);
try {
byte[] Buffer = new byte[4096*5];
//查询数据库中第 id 条记录中的数据库文件
String sql = "select docsuffixalname,doccontent from T_BAS_DOCUMENTYUAN where id="+id;PreparedStatement pstmt =conn.prepareStatement(sql);
ResultSet resultSet = pstmt.executeQuery();
if(resultSet.next()){
HttpServletResponse response = ServletActionContext.getResponse();
response.reset();
String postfixName = resultSet.getString("Docsuffixalname");
// Blob blob = resultSet.getBlob("doccontent");
String postfix = "";
if(null != postfixName && !"".equals(postfixName)){
postfix = postfixName.substring(postfixName.lastIndexOf(".")+1);
if("doc".equals(postfix)){
response.setContentType("application/vnd.msword;charset=utf-8");
}else if("xls".equals(postfix)){
response.setContentType("application/vnd.ms-excel;charset=utf-8");
}else if("txt".equals(postfix)){
response.setContentType("text/plain;charset=utf-8");
}else if("pdf".equals(postfix)){
response.setContentType("application/pdf;charset=utf-8");
}
response.setHeader("Content-Disposition","attachment;filename=\""+ java.net.URLEncoder.encode(postfixName.replaceAll(" ", ""), "UTF-8")+ "\"");
OutputStream os = response.getOutputStream();
InputStream istream = resultSet.getBinaryStream("doccontent");
int size =0 ;
while((size = istream.read(Buffer)) != -1){
os.write(Buffer, 0, size);
}
os.flush();
os.close();
}
}
} catch (Exception e) {
}
return null;
}