struts2+hibernate实现图片的上传和显示

struts2+hibernate实现图片的上传和显示
这里的上传是指将图片上传到数据库,显示是把多张数据库的图片显示在一个jsp文件里。


图片在数据库里面用blob类型表示,在mysql里面blob能够存储的大小


类型 大小(单位:字节)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G


数据是网上找的,不保证一定对,做参考吧。


在hibernate中blob被映射成byte[],下面是例子
public class Book implements java.io.Serializable {
private String id;
private BookChildKind bookChildKind;
private BookKind bookKind;
private String bookName;
private int price;
private String bookAuther;
private String bookPublisher;
private byte[] bookImg; //这个对应数据库blob类型的字段
private Date buyTime;
private int totalCount;
private String bookDescribe;
private int sellCount;
}


上传图片到本地硬盘的过称我之前的文章写过了http://blog.csdn.net/zhiweiv/archive/2008/10/16/3085834.aspx,这里就不写了。主要的是把数据存入到数据库。
byte buffer[]=new byte[(int)bookImg.length()];
FileInputStream in=new FileInputStream(bookImg);
in.read(buffer);
book.setBookImg(buffer);
bookImg为图片上传到本地对应的File实例。


然后是将数据库里面的图片读出来作为img的src显示出来,原理和以前那个struts2的图形验证码实现相同http://blog.csdn.net/zhiweiv/archive/2008/10/08/3035811.aspx。使用struts2的stream返回img的字节信息作为图片的src,这里的问题是一个页面有很多图片,有一个action提供返回指定id的数据库记录的图片字节流
public String getImg(){
Book book=bookDao.get(id);
inputStream=new ByteArrayInputStream(book.getBookImg());
return "img";
}
但是struts2没有为img提供包装的标签,怎么动态的设置img的src呢?? 原来还可以这样用~~~
<img src="mainPageAction!getImg.action?id=<s:property value="id"/>"/>


以前我一直不知道原来struts2的标签还可以这样用的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值