java blob 文件上传下载


1、文件上传

pojo中为byte[] 类型,数据库中对应为blob类型。

主要代码:

FileInputStream fis = null;

fis = new FileInputStream(new File(filePath));
byte[] inputByte = input2byte(fis);
fileBean.setContent(inputByte);

/**
* 将 流 转换为byte
* @param inStream
* @return
* @throws IOException
*/
public static final byte[] input2byte(InputStream inStream) throws IOException { 
  ByteArrayOutputStream swapStream = null;
  try {
    swapStream = new ByteArrayOutputStream();
    byte[] buff = new byte[1024]; 
    int rc = 0; 
    while ((rc = inStream.read(buff, 0, 1024)) > 0) { 
      swapStream.write(buff, 0, rc); 
    } 
    return swapStream.toByteArray();
  } catch (Exception e) {
    logger.info(e.getStackTrace());
  } finally {
    if (swapStream != null) {
    safeClose(swapStream);
    }
  }
  return null;
} 

2、文件下载

@Override
public void downFileByBlob(HttpServletRequest request, HttpServletResponse response, String fileId) throws IOException {
  AtFileupload bean = hibernateDao.getObject(AtFileupload.class, fileId);
  if (bean.getContent() != null) {
    String filename= bean.getFileName();//获取日志中存储的文件名称
    String userAgent = request.getHeader("user-agent").toLowerCase(); 
    if (userAgent.contains("msie") || userAgent.contains("like gecko")) { 
    // IE 
      filename = URLEncoder.encode(filename, "UTF-8"); 
    } else { 
    // 非IE 
      filename = new String(filename.getBytes("UTF-8"), "iso-8859-1"); 
    } 
    try {
      byte[] fileStream = bean.getContent();
      // 以流的形式下载文件
        response.setContentType("application/x-msdownload");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-Disposition", "attachment; filename=" + filename);
        OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
        toClient.write(fileStream);
        toClient.flush();
        toClient.close();
      } catch (Exception e) {
        logger.info(e.getStackTrace());
      }
   }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM