nicky

          積水成海,滴水穿石。

          導航

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統計

          公告

          信心十足

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          struts2+hibernate實現圖片的上傳和顯示

          struts2+hibernate實現圖片的上傳和顯示

                 這里的上傳是指將圖片上傳到數據庫,顯示是把多張數據庫的圖片顯示在一個jsp文件里。

              圖片在數據庫里面用blob類型表示,在mysql里面blob能夠存儲的大小

           類型  大小(單位:字節)
           TinyBlob  最大 255
           Blob  最大 65K
           MediumBlob  最大 16M
           LongBlob  最大 4G

              數據是網上找的,不保證一定對,做參考吧。

              在hibernate中blob被映射成byte[],下面是例子
          1. public class Book  implements java.io.Serializable {
          2.      private String id;
          3.      private BookChildKind bookChildKind;
          4.      private BookKind bookKind;
          5.      private String bookName;
          6.      private int price;
          7.      private String bookAuther;
          8.      private String bookPublisher;
          9.      private byte[] bookImg;    //這個對應數據庫blob類型的字段
          10.      private Date buyTime;
          11.      private int totalCount;
          12.      private String bookDescribe;
          13.      private int sellCount;
          14. }

              上傳圖片到本地硬盤的過稱我之前的文章寫過了http://blog.csdn.net/zhiweiv/archive/2008/10/16/3085834.aspx,這里就不寫了。主要的是把數據存入到數據庫。
          1.         byte buffer[]=new byte[(int)bookImg.length()];
          2.         FileInputStream in=new FileInputStream(bookImg);
          3.         in.read(buffer);
          4.         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的數據庫記錄的圖片字節流
          1.     public String getImg(){
          2.         Book book=bookDao.get(id);
          3.         inputStream=new ByteArrayInputStream(book.getBookImg());
          4.         return "img";
          5.     }
              但是struts2沒有為img提供包裝的標簽,怎么動態的設置img的src呢??  原來還可以這樣用~~~
          1. <img src="mainPageAction!getImg.action?id=<s:property value="id"/>"/>

              以前我一直不知道原來struts2的標簽還可以這樣用的

          posted on 2009-04-23 15:48 nicky 閱讀(6174) 評論(2)  編輯  收藏

          評論

          # re: struts2+hibernate實現圖片的上傳和顯示 2014-04-11 22:50

          搞了老半天,看了樓主的,這段頓時開竅!謝謝!  回復  更多評論   

          # re: struts2+hibernate實現圖片的上傳和顯示 2014-05-13 19:37 ss

          ff  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 石泉县| 闵行区| 新宾| 永丰县| 贵州省| 株洲市| 大同县| 商丘市| 满城县| 张家界市| 科尔| 彩票| 永泰县| 芜湖县| 锡林浩特市| 怀来县| 漳州市| 乌拉特中旗| 衡阳市| 湖州市| 昌图县| 桑日县| 南川市| 扬中市| 新巴尔虎右旗| 偏关县| 金沙县| 汝阳县| 涿州市| 西平县| 延寿县| 巩留县| 海门市| 永寿县| 东乌珠穆沁旗| 灌阳县| 扶风县| 波密县| 新乐市| 金华市| 佳木斯市|