这里的上传是指将图片上传到数据库,显示是把多张数据库的图片显示在一个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;
- private Date buyTime;
- private int totalCount;
- private String bookDescribe;
- private int sellCount;
- }
- byte buffer[]=new byte[(int)bookImg.length()];
- FileInputStream in=new FileInputStream(bookImg);
- in.read(buffer);
- book.setBookImg(buffer);
bookImg为图片上传到本地对应的File实例。
- 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的标签还可以这样用的