`
齐晓威_518
  • 浏览: 617937 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

java以Blob形式存储,读取图片并在jsp页面显示图片流

 
阅读更多

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

 

package org.blog.util;

 

import java.io.File;

 

import java.io.FileInputStream;

 

import java.io.FileNotFoundException;

 

import java.io.FileOutputStream;

 

import java.io.IOException;

 

 public class ImageUtil {

 

    private static File file = null;

 

    /**

 

     * 读取图像的二进制流

 

     * 

 

     * @param infile

 

     * @return

 

     */

 

    public static FileInputStream getByteImage(String infile) {

 

        FileInputStream inputImage = null;

 

        file = new File(infile);

 

        try {

 

            inputImage = new FileInputStream(file);

 

        } catch (FileNotFoundException e) {

 

            e.printStackTrace();

 

        }

 

        return inputImage;

 

    }

 

    /**

 

     * 输出图片

 

     * @param inputStream

 

     * @param path

 

     */

 

    public static void readBlob(FileInputStream inputStream, String path) {

 

        try {

 

            FileOutputStream fileOutputStream = new FileOutputStream(path);

 

            byte[] buf = new byte[1024];

 

            int len = 0;

 

            while ((len = inputStream.read(buf)) != -1) {

 

                fileOutputStream.write(buf, 0, len);// 写

 

             }

 

            inputStream.close();

 

            fileOutputStream.close();

 

        } catch (FileNotFoundException e) {

 

            e.printStackTrace();

 

        } catch (IOException e) {

 

            e.printStackTrace();

 

        }

 

    }

 

}

 

 

 

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

servlet源码:

 

package servlet;

 

import java.io.ByteArrayInputStream;

 

import java.io.FileInputStream;

 

import java.io.IOException;

 

import java.io.InputStream;

 

import java.io.OutputStream;

 

import java.io.PrintWriter;

 

import java.sql.Blob;

 

import javax.servlet.ServletException;

 

import javax.servlet.ServletOutputStream;

 

import javax.servlet.http.HttpServlet;

 

import javax.servlet.http.HttpServletRequest;

 

import javax.servlet.http.HttpServletResponse;

 

import org.blog.util.ImageUtil;

 

import org.hibernate.Hibernate;

 

 public class Image extends HttpServlet {

 

    private static final long serialVersionUID = 1L;

 

    @Override

 

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)

 

            throws ServletException, IOException {

 

        this.doPost(req, resp);

 

    }

 

    @Override

 

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)

 

            throws ServletException, IOException {

 

        try {

 

            FileInputStream in = ImageUtil.getByteImage("D:\\me.jpg");

 

            Blob blob = Hibernate.createBlob(in);

 

            InputStream inputStream = blob.getBinaryStream();// IO流

 

            int length = (int) blob.length();

 

            byte[] b = new byte[length];

 

            inputStream.read(b, 0, length);

 

            PrintWriter out = resp.getWriter();

 

            InputStream is = new ByteArrayInputStream(b);

 

            int a = is.read();

 

            while (a != -1) {

 

                out.print((char) a);

 

                a = is.read();

 

            }

 

            out.flush();

 

            out.close();

 

            /*OutputStream outputStream = resp.getOutputStream();// 从response中获取getOutputStream

 

            outputStream.write(b);// 写

 

            inputStream.close();

 

            outputStream.close();*/

 

        } catch (Exception e) {

 

            System.out.println("error");

 

        }

 

    }

 

}

 

jsp源码:

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

<%

 

String path = request.getContextPath();

 

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

 

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 

<html>

 

  <head>

 

    <base href="<%=basePath%>">

 

    

 

    <title>My JSP 'image.jsp' starting page</title>

 

    

 

    <meta http-equiv="pragma" content="no-cache">

 

    <meta http-equiv="cache-control" content="no-cache">

 

    <meta http-equiv="expires" content="0">    

 

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

 

    <meta http-equiv="description" content="This is my page">

 

    <!--

 

    <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">

 

    -->

 

  </head>

 

  

 

  <body>

 

    <div style="border: solid red ;" mce_style="border: solid red ;"> <img src="image.do" mce_src="image.do"></div>

 

  </body>

 

</html>

 

 

 

jsp从数据库中读取二进制图片显示在页面上,要求图片在规定的长宽中显示,大的缩写,小的还是原图大小代码

<img id="lg_png" onload="if(this.width>200)this.width=200;if(this.height>80)this.height=80" src='GetPhoServlet.do?objectFlag=2&photo_no=<%= ctVecs.elementAt(2)%>' />

 

 

 

分享到:
评论

相关推荐

    java中读取ORACLE中BLOB字段存储的图片

    通过以上步骤,我们成功地实现了在Java程序中读取Oracle数据库BLOB字段中存储的图片,并在前端页面上显示出来。此方法不仅适用于图片,还可以扩展到其他类型的二进制数据,如音频、视频等文件。这对于构建多媒体应用...

    图片直接保存到数据库,并在JSP页面显示

    标题“图片直接保存到数据库,并在JSP页面显示”涉及的知识点主要集中在Web开发领域,尤其是Java Web开发,包括图片处理、数据库存储以及前端展示。这里我们将深入探讨以下几个关键环节: 1. 图片数据的二进制化:...

    Java从数据库中读取Blob对象图片并显示的方法

    这里我们主要探讨两种Java从数据库中读取Blob对象图片并显示的方法。 **方法一** 这个方法涉及从数据库获取Blob对象的输入流,并将其直接写入HTTP响应的输出流,以便浏览器可以解析并显示图片。以下是实现步骤: ...

    实现图片直接以blob的形式直接存入数据库

    "实现图片直接以blob的形式直接存入数据库"这一技术方案主要是为了解决如何高效、安全地存储和检索图片数据。Blob(Binary Large Object)是数据库系统中用于存储大对象(如图像、音频或视频文件)的数据类型。本...

    jsp操作mysql数据库的blob字段

    在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...

    java中图片上传并在jsp页面显示.txt

    ### Java中的图片上传并在JSP页面显示 #### 知识点概述 本篇文章将详细介绍如何在Java项目中实现图片的上传功能,并将其显示在JSP页面上。这涉及到多个技术点,包括使用`commons-fileupload`组件处理文件上传、...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。

    jQuery缩略图和blob的jsp代码

    在IT行业中,jQuery、Oracle Blob、JSP以及图片处理是常见的技术领域,这些技术常常结合在一起用于构建功能丰富的Web应用程序,特别是涉及到图像上传和显示的场景。以下是对这些知识点的详细说明: 首先,jQuery是...

    jsp1.rar_jsp blob_jsp 图片_mysql blob_图片 MySQL

    `jsp1.rar_jsp blob_jsp 图片_mysql blob_图片 MySQL`这个标题和描述指向了一个具体的场景:使用JSP(JavaServer Pages)从MySQL数据库中读取存储为BLOB(Binary Large Object)类型的图片数据。 首先,我们来理解...

    jsp显示数据库图片

    在这里,我们将创建一个Servlet来从数据库中读取图片的二进制数据,并将其转化为适合在网页上显示的形式。 3. **MySQL**:MySQL是一个广泛使用的开源关系型数据库管理系统,可以存储各种类型的数据,包括图片的二...

    使用JAVA读取ORACLE_BLOB字段实现上传下载.doc

    使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案

    4. **显示图形**: 在Java中绘制图形,并将其显示在JSP页面上。 #### 实现细节 1. **排样数据表设计**: - 设计了一个名为`GY_PARTS_GROUP_DETAIL`的表,用于存储排样后的坐标数据。 - 表结构包括: - `PART_NUM`...

    struts1上传图片,保存数据库,再显示jsp页面

    在“struts1上传图片,保存数据库,再显示jsp页面”这个场景中,我们将探讨如何利用Struts1实现文件上传,将图片数据保存到数据库,并在JSP页面上展示。 1. **Struts1的文件上传组件**: Struts1并不直接支持文件...

    JSP中图像数据的读取

    在JSP(JavaServer Pages)中,图像数据的读取是一项常见的任务,特别是在构建动态网页时,例如用户上传图片、显示数据库存储的图片等场景。本文将深入探讨如何在JSP中有效地处理图像数据。 首先,理解JSP的基础是...

    从mysql数据库中批量下载Blob图片到本地

    本教程将深入探讨如何在Java环境下,批量地从MySQL数据库中下载存储在Blob字段中的图片,并将其保存到本地文件系统。 首先,我们需要理解Blob类型。Blob是MySQL中的一个数据类型,用于存储大量二进制数据。它分为四...

    MySQL如何存储图片.doc

    在具体的实现中,可以利用JSP(Java Server Pages)技术结合Java编程语言来完成图片的上传与存储。以下是一个简化的示例流程: 1. **前端表单设计**:创建一个HTML表单,包含文本输入框用于新闻标题和内容,以及一...

    javaweb上传和显示图片(含源码).zip

    图片的二进制数据可能直接存储在BLOB类型字段,或者存储在服务器文件系统,并仅存储路径在数据库中。 8. **图片显示**: 图片上传后,用户可能需要查询并显示已上传的图片。这可以通过Servlet或JSP实现,从数据库...

    查询mysql数据库中的二进制图片数据,并全部显示出来

    这就是如何在MySQL数据库中存储和查询二进制图片数据,并通过JSP进行显示的基本步骤。在实际应用中,还需要考虑错误处理、安全性(如SQL注入防护)以及性能优化等细节。此外,为了提高用户体验,通常会将图片数据...

    JSP + MySQL+Servlet+JavaBean 实现图片上传

    6. **文件上传流程**: 通常,图片上传的过程包括用户在JSP页面上选择文件,通过表单提交到Servlet,Servlet解析请求,读取文件内容,然后将文件内容转化为Blob对象,最后使用JavaBean将Blob对象与相关元数据一起存入...

    使用Struts2上传图片存取到Mysql中并读取出来显示在页面上_好资源0分送

    1. **图片上传与存储**:了解如何通过Struts2上传图片,并将其以Blob形式存储在MySQL数据库中。 2. **图片读取与展示**:掌握如何从数据库中读取图片Blob数据,并将其显示在Web页面上。 #### 开发准备 1. **开发...

Global site tag (gtag.js) - Google Analytics