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());
      }
   }
}

java blob 文件上传下载的更多相关文章

  1. CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

  2. java实现文件上传下载

    喜欢的朋友可以关注下,粉丝也缺. 今天发现已经有很久没有给大家分享一篇技术文章了,于是想了一下给大家分享一篇java实现文件上传下载功能的文章,不喜欢的希望大家勿喷. 想必大家都知道文件的上传前端页面 ...

  3. java web 文件上传下载

    文件上传下载案例: 首先是此案例工程的目录结构:

  4. java+大文件上传下载

    文件上传下载,与传统的方式不同,这里能够上传和下载10G以上的文件.而且支持断点续传. 通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场 ...

  5. FasfDFS整合Java实现文件上传下载

    文章目录     一 : 添加配置文件     二 : 加载配置文件         1. 测试加载配置文件         2. 输出配置文件     三:功能实现         1.初始化连接信 ...

  6. Java web文件上传下载

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52048666 作者:朱培 ID:sdksdk0 邮 ...

  7. fastDFS与java整合文件上传下载

    准备 下载fastdfs-client-java源码 源码地址 密码:s3sw 修改pom.xml 第一个plugins是必需要的,是maven用来编译的插件,第二个是maven打源码包的,可以不要. ...

  8. java 实现文件上传下载以及查看

    项目的目录结构 代码  IOUtils.java package cn.edu.zyt.util; import java.io.IOException; import java.io.InputSt ...

  9. Jsch - java SFTP 文件上传下载

    使用Jsch上传.下载文件,核心步骤是:获取channel,然后使用get/put方法下载.上传文件 核心代码句: session = jSch.getSession(ftpUserName, ftp ...

随机推荐

  1. maven assembly 配置详解

    Maven Assembly插件介绍 博客分类: 项目构建   你是否想要创建一个包含脚本.配置文件以及所有运行时所依赖的元素(jar)Assembly插件能帮你构建一个完整的发布包. Assembl ...

  2. oracle 如何完全删除干净

    在安装oracle的时候如果出现了,指定的SID在本机上已经存在.这样的报错的话.这边你肯定是第二次在安装你的oracle了,这里出现这样的错误是你没有吧原先的那些关于oracle的东西给清理干净,这 ...

  3. hibernate多对多关系配置

    一.创建用户,角色实体类. 一名用户可以有多个角色.一个角色可以对于多名用户. 用户实体类 public class User { private int uId; private String uN ...

  4. ABAP 面向对象(Object Orientation) OO

    [转自 http://blog.sina.com.cn/s/blog_7c7b16000101bhof.html]在程序中, 对象的识别和寻址是通过对象引用来实现的, 对象引用变量可以访问对象的属性和 ...

  5. activiti基础--2----------------------(流程定义)

    Deployment 部署对象 1.一次部署的多个文件信息,对于不需要的流程可以删除和修改 2.对应的表 act_re_deployment #部署对象表 act_re_procdef #流程定义表 ...

  6. python 学习2:生成器,迭代器,装饰器

    1.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万  个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那 ...

  7. Python socket TCPServer Demo

    #coding:utf-8 from SocketServer import TCPServer,BaseRequestHandler import traceback class MyBaseReq ...

  8. sql的执行过程

    from ===> where ===> group by ===> select ===>order by 这个执行流程 很重要~~

  9. EntityFramework 学习 一 三种开发模式

    Entity Framework支持3种不同的开发方法 1.Code First 2.Model First 3.Database First Code First 使用Code First开发模式, ...

  10. Victor/ArrayList/LinkedList/Stack/CopyOnWriteArrayList 区别

    Victor:采用数组的方式存储数据,与ArrayList相同,线程安全.性能比ArrayList差 ArrayList:采用数据的方式存储数据,线程不安全.ArrayList使用数组来存储数据,使用 ...