将File 存入database

 我删除了些内容,也没有捕获异常 并且这些代码未经过简化,但是整体思路是正确的

 

先说下整体思路,

1 数据库中字段类型是byte[]

2 action 中接受的是File 类型

3 将File 类型转换成byte[]类型 File > BufferedInputStream>InputStream>byte[] (网上搜索下就好了)

剩下就看hibernate的啦

 

<form action="workflow!add" method="post" enctype="multipart/form-data">
<table class="tableEdit" style="width:580px;" cellspacing="0" border="0" cellpadding="0">

  <td class="tdEditLabel" >请选择流程定义文件</td>   
  <td class="tdEditContent"><input type="file" name="processDefinition">
  <td class="tdEditLabel" >请选择流程定义图片</td>   
  <td class="tdEditContent"><input type="file" name="processImage"></td>
</table>

</form>  

 

Action  中

import java.io.File;

public class A extends ActionSupport

{

private File processDefinition;

private static final int BUFFER_SIZE = 2 * 1024 * 1024;

 

public void setProcessImage(File processImage) {
  this.processImage = processImage;
 }

public String execute() throws Exception {

 

InputStream indefStream = null;

   ByteArrayOutputStream bytedefstream  = new ByteArrayOutputStream();   

 InputStream  indefStream = new BufferedInputStream(new FileInputStream(processDefinition),BUFFER_SIZE);
   int ch; 
   
      while (indefStream!=null&&(ch = indefStream.read()) != -1) { 
       bytedefstream.write(ch);  
}     

 

 indefStream.close();
     
   byte defdata[] = bytedefstream.toByteArray();  
      
  ProcessDefinition pd = ProcessDefinition.parseXmlInputStream(new ByteArrayInputStream(defdata));
    
  this.getJbpmContext().deployProcessDefinition(pd);


  WorkFlow workFlow = (WorkFlow) this.getSession().createQuery(
    "select w from WorkFlow w where w.name = ?").setParameter(0,
    pd.getName()).uniqueResult();


  if (workFlow == null) {
   workFlow = new WorkFlow();
   workFlow.setName(pd.getName());
   workFlow.setProcessDefinition(defdata);
      this.getHibernateTemplate().save(workFlow);
   
  }

 



  return "index";
 }
}

 

将File 类型转化为 byte[]  类型

 

 

 

WorkFlow  实体类中  processDefinition是 byte[] 类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值