我要做的功能是页面浏览了一个文件,得到这个文件的路径传到后台
后台读取这个文件的内容,保存近数据库的Blob类型的列中
Blob类型没操作过,程序是SSH做的,我现在写了个方法想读取文件内容返回一个Blob类型,
好SET近我的hibernate数据库对象中。哪位大虾帮我完成一下。
private Blob getNr(String str) throws Exception{
 File file = new File(str);
       BufferedReader br = new BufferedReader(new FileReader(file));
       
return null;
}

解决方案 »

  1.   

    我们要做的存内容,数据库只存文件名称跟内容,页面点击文件名,自动弹出word文件显示内容
      

  2.   

    word
    我觉得还是存文件路径比较好
    请求的时候返回文件路径给前台
    不过word到的确是有格式的看看有没有office相关的接口
      

  3.   

    现在关键的是我不知道怎么把内容存近数据库里。
    读取文件以后,怎么转化成Blob类型,或者是其他什么类型可以存近数据库的Blob类型的列中
      

  4.   

    byte[]
      

  5.   

    public class ZskBjwdk  implements Serializable {
    //default serial version id, required for serializable classes.
    private static final long serialVersionUID = 1L;
    private String wdXh;
    private java.sql.Date cjrq;
    private String cjrDm;
    private String wdlxDm;
    private String wdMc;
    private java.sql.Blob wdNr;  //这个是我要存的BLOB类型的属性
    private java.sql.Date xgrq;
    private String xgrDm;
    private String yxbz;
    …………
    }
    这个对象就是我要存数据库的对象
    我们用SSH做的,我首先要的到java.sql.Blob 类型的值,然后set近我的ZskBjwdk对象,
    然后通过公共方法saveObject(Object ZskBjwdk)将这个对象存如数据库。
    所以我要获得BLOB类型的属性查了下BLOB的API,全都是对JDBC的操作。
    没有转换类型一说啊。
      

  6.   

    private java.sql.Blob wdNr;  //这个是我要存的BLOB类型的属性 
    private byte[] wdNr;
      

  7.   

    确定Byte[]能存近数据库的Blob对象吗,确定的话,我要去申请修改,对象属性类型,
    对象,数据库,公共方法都是项目经理做好给他们公用的,我要改的话很麻烦啊。
      

  8.   

    先把取得的内容(InputStream)转换为byte[]
      

  9.   

    请参考
    http://blog.csdn.net/liuyar/archive/2009/05/04/4148001.aspx
      

  10.   

    我现在有更好的方法了,在form里定义一个FormFlie类型的参数,页面浏览文件以后传递后台这个类型的值,取到的就是文件的内容,在调用hibernate的createBlob方法就能获得java.sql.Blob类型的,
    更大家共享一下
    这是Form里的定义属性:
    private FormFile bzwdFile;
    这是后台取文件内容转换成Blob类型的方法:
    Blob wdnr = Hibernate.createBlob(bzwdForm.getBzwdFile().getFileData());
    这是页面上的代码:
    <html:form action="/bzwd" styleId="bzwdFormId" enctype="multipart/form-data">
    ……
    <html:file property="bzwdFile" styleClass="tableBorder2" style="width:95%;" onchange="setWdMc();"
    name="bzwdForm" />
    ……
      

  11.   

    先插入一个空的Blob,然后获取该Blob,并写该Blob的数据流
      

  12.   

    兄台,用你的哪种方式是不可能实现的哦!
    我以前做过将大对象存入数据库中!
    思路如下:
      1.先在数据库中建一张表用于存放对象信息,表的类型为Blob;
      2.向表中插入一条记录;
      3.将表中的记录查询出来,然后将需要存入的文件存入表中;
    细节我忘了哦,如果说真的要,我这里有源码!