迷失北京

          BlogJava 聯(lián)系 聚合 管理
            60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

                廢話少說(shuō)代碼伺候:

          封裝好的ImageUtil類:目的讀取本地的圖片文件并存入數(shù)據(jù)庫(kù),然后讀出數(shù)據(jù)庫(kù)中以Blob形式存儲(chǔ)的圖片保存到指定目錄。

           

          1 package org.blog.util;
          2 import java.io.File;
          3 import java.io.FileInputStream;
          4 import java.io.FileNotFoundException;
          5 import java.io.FileOutputStream;
          6 import java.io.IOException;
          7  public class ImageUtil {
          8 private static File file = null;
          9 /**
          10 * 讀取圖像的二進(jìn)制流
          11 *
          12 * @param infile
          13 * @return
          14 */
          15 public static FileInputStream getByteImage(String infile) {
          16 FileInputStream inputImage = null;
          17 file = new File(infile);
          18 try {
          19 inputImage = new FileInputStream(file);
          20 } catch (FileNotFoundException e) {
          21 e.printStackTrace();
          22 }
          23 return inputImage;
          24 }
          25 /**
          26 * 輸出圖片
          27 * @param inputStream
          28 * @param path
          29 */
          30 public static void readBlob(FileInputStream inputStream, String path) {
          31 try {
          32 FileOutputStream fileOutputStream = new FileOutputStream(path);
          33 byte[] buf = new byte[1024];
          34 int len = 0;
          35 while ((len = inputStream.read(buf)) != -1) {
          36 fileOutputStream.write(buf, 0, len);// 寫(xiě)
          37   }
          38 inputStream.close();
          39 fileOutputStream.close();
          40 } catch (FileNotFoundException e) {
          41 e.printStackTrace();
          42 } catch (IOException e) {
          43 e.printStackTrace();
          44 }
          45 }
          46 }

          從數(shù)據(jù)庫(kù)中讀出二進(jìn)制流顯示到j(luò)sp頁(yè)面:

          servlet源碼:

           

          1 package servlet;
          2 import java.io.ByteArrayInputStream;
          3 import java.io.FileInputStream;
          4 import java.io.IOException;
          5 import java.io.InputStream;
          6 import java.io.OutputStream;
          7 import java.io.PrintWriter;
          8 import java.sql.Blob;
          9 import javax.servlet.ServletException;
          10 import javax.servlet.ServletOutputStream;
          11 import javax.servlet.http.HttpServlet;
          12 import javax.servlet.http.HttpServletRequest;
          13 import javax.servlet.http.HttpServletResponse;
          14 import org.blog.util.ImageUtil;
          15 import org.hibernate.Hibernate;
          16  public class Image extends HttpServlet {
          17 private static final long serialVersionUID = 1L;
          18 @Override
          19 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
          20 throws ServletException, IOException {
          21 this.doPost(req, resp);
          22 }
          23 @Override
          24 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
          25 throws ServletException, IOException {
          26 try {
          27 FileInputStream in = ImageUtil.getByteImage("D:\\me.jpg");
          28 Blob blob = Hibernate.createBlob(in);
          29 InputStream inputStream = blob.getBinaryStream();// IO流
          30 int length = (int) blob.length();
          31 byte[] b = new byte[length];
          32 inputStream.read(b, 0, length);
          33 PrintWriter out = resp.getWriter();
          34 InputStream is = new ByteArrayInputStream(b);
          35 int a = is.read();
          36 while (a != -1) {
          37 out.print((char) a);
          38 a = is.read();
          39 }
          40 out.flush();
          41 out.close();
          42 /*OutputStream outputStream = resp.getOutputStream();// 從response中獲取getOutputStream
          43 outputStream.write(b);// 寫(xiě)
          44 inputStream.close();
          45 outputStream.close();*/
          46 } catch (Exception e) {
          47 System.out.println("error");
          48 }
          49 }
          50 }

          jsp源碼:

          1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          2 <%
          3 String path = request.getContextPath();
          4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
          5 %>
          6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          7 <html>
          8 <head>
          9 <base href="<%=basePath%>">
          10
          11 <title>My JSP 'image.jsp' starting page</title>
          12
          13 <meta http-equiv="pragma" content="no-cache">
          14 <meta http-equiv="cache-control" content="no-cache">
          15 <meta http-equiv="expires" content="0">
          16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
          17 <meta http-equiv="description" content="This is my page">
          18 <!--
          19 <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
          20 -->
          21 </head>
          22
          23 <body>
          24 <div style="border: solid red ;" mce_style="border: solid red ;"> <img src="image.do" mce_src="image.do"></div>
          25 </body>
          26 </html>


          posted on 2011-04-30 20:33 王康 閱讀(15677) 評(píng)論(1)  編輯  收藏

          Feedback

          # re: java以Blob形式存儲(chǔ),讀取圖片并在jsp頁(yè)面顯示圖片流 2014-06-16 09:47 4w5t6
          gd th  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 嘉义市| 临沭县| 渝北区| 德江县| 岑巩县| 四川省| 汝阳县| 绥中县| 浦江县| 方城县| 龙山县| 郧西县| 旺苍县| 南川市| 乳山市| 疏附县| 白朗县| 济宁市| 和林格尔县| 汝南县| 赣榆县| 会宁县| 靖西县| 依兰县| 雅安市| 开原市| 景宁| 河南省| 太白县| 盐池县| 杭锦旗| 云浮市| 鹤庆县| 鄂尔多斯市| 陆丰市| 仁布县| 华池县| 桃园市| 庆城县| 棋牌| 沧源|