读取oracle blob字段内容并以文件形式下载

这个也是从网找的代码攒的,做个记录,以后可能会用得着。表里即存了文件的内容,也存了文件的类型。

String xh = request.getParameter("xh")==null?"":request.getParameter("xh").toString(); 
Connection con = JdbcUtilsHelper.getConnection();     
PreparedStatement pstm = con.prepareStatement("select wjnr,wjlx from table where xh=?");
pstm.setString(1, xh);
ResultSet rs = pstm.executeQuery();

if(rs.next()){
 Blob blob = rs.getBlob(1);
 String wjlx = rs.getString(2);
 if(blob != null){
  InputStream ins = blob.getBinaryStream();
  
  response.setContentType("application/x-msdownload");
  response.addHeader("Content-Disposition", "attachment; filename=data."+wjlx);
  
  OutputStream outStream = response.getOutputStream();
  
  byte[] bytes = new byte[1024];
  int len = 0;
  while ((len=ins.read(bytes))!=-1) {
      outStream.write(bytes,0,len);
  }
  out.clear();
  out = pageContext.pushBody();

  ins.close();
  outStream.close();
  outStream = null;
  con.commit();
  con.close(); 
 }else{
  out.print("下载文件失败!文件内容为空!");
 } 
}else{
 out.print("下载文件失败!没有找到相关记录!");
}

猜你喜欢

转载自blog.csdn.net/hereyouare/article/details/6005054