迷失北京

BlogJava 联系 聚合 管理
  60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

      废话少说代码伺候:

封装好的ImageUtil类:目的读取本地的图片文件并存入数据库,然后读出数据库中以Blob形式存储的图片保存到指定目录。

 

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 * 读取图像的二进制流
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);//
37   }
38 inputStream.close();
39 fileOutputStream.close();
40 } catch (FileNotFoundException e) {
41 e.printStackTrace();
42 } catch (IOException e) {
43 e.printStackTrace();
44 }
45 }
46 }

从数据库中读出二进制流显示到jsp页面:

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);// 写
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 王康 阅读(15668) 评论(1)  编辑  收藏

Feedback

# re: java以Blob形式存储,读取图片并在jsp页面显示图片流 2014-06-16 09:47 4w5t6
gd th  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: