封装好的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字段中存储的图片,并在前端页面上显示出来。此方法不仅适用于图片,还可以扩展到其他类型的二进制数据,如音频、视频等文件。这对于构建多媒体应用...
标题“图片直接保存到数据库,并在JSP页面显示”涉及的知识点主要集中在Web开发领域,尤其是Java Web开发,包括图片处理、数据库存储以及前端展示。这里我们将深入探讨以下几个关键环节: 1. 图片数据的二进制化:...
这里我们主要探讨两种Java从数据库中读取Blob对象图片并显示的方法。 **方法一** 这个方法涉及从数据库获取Blob对象的输入流,并将其直接写入HTTP响应的输出流,以便浏览器可以解析并显示图片。以下是实现步骤: ...
"实现图片直接以blob的形式直接存入数据库"这一技术方案主要是为了解决如何高效、安全地存储和检索图片数据。Blob(Binary Large Object)是数据库系统中用于存储大对象(如图像、音频或视频文件)的数据类型。本...
在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...
### Java中的图片上传并在JSP页面显示 #### 知识点概述 本篇文章将详细介绍如何在Java项目中实现图片的上传功能,并将其显示在JSP页面上。这涉及到多个技术点,包括使用`commons-fileupload`组件处理文件上传、...
本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。
在IT行业中,jQuery、Oracle Blob、JSP以及图片处理是常见的技术领域,这些技术常常结合在一起用于构建功能丰富的Web应用程序,特别是涉及到图像上传和显示的场景。以下是对这些知识点的详细说明: 首先,jQuery是...
`jsp1.rar_jsp blob_jsp 图片_mysql blob_图片 MySQL`这个标题和描述指向了一个具体的场景:使用JSP(JavaServer Pages)从MySQL数据库中读取存储为BLOB(Binary Large Object)类型的图片数据。 首先,我们来理解...
在这里,我们将创建一个Servlet来从数据库中读取图片的二进制数据,并将其转化为适合在网页上显示的形式。 3. **MySQL**:MySQL是一个广泛使用的开源关系型数据库管理系统,可以存储各种类型的数据,包括图片的二...
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...
4. **显示图形**: 在Java中绘制图形,并将其显示在JSP页面上。 #### 实现细节 1. **排样数据表设计**: - 设计了一个名为`GY_PARTS_GROUP_DETAIL`的表,用于存储排样后的坐标数据。 - 表结构包括: - `PART_NUM`...
在“struts1上传图片,保存数据库,再显示jsp页面”这个场景中,我们将探讨如何利用Struts1实现文件上传,将图片数据保存到数据库,并在JSP页面上展示。 1. **Struts1的文件上传组件**: Struts1并不直接支持文件...
在JSP(JavaServer Pages)中,图像数据的读取是一项常见的任务,特别是在构建动态网页时,例如用户上传图片、显示数据库存储的图片等场景。本文将深入探讨如何在JSP中有效地处理图像数据。 首先,理解JSP的基础是...
本教程将深入探讨如何在Java环境下,批量地从MySQL数据库中下载存储在Blob字段中的图片,并将其保存到本地文件系统。 首先,我们需要理解Blob类型。Blob是MySQL中的一个数据类型,用于存储大量二进制数据。它分为四...
在具体的实现中,可以利用JSP(Java Server Pages)技术结合Java编程语言来完成图片的上传与存储。以下是一个简化的示例流程: 1. **前端表单设计**:创建一个HTML表单,包含文本输入框用于新闻标题和内容,以及一...
图片的二进制数据可能直接存储在BLOB类型字段,或者存储在服务器文件系统,并仅存储路径在数据库中。 8. **图片显示**: 图片上传后,用户可能需要查询并显示已上传的图片。这可以通过Servlet或JSP实现,从数据库...
这就是如何在MySQL数据库中存储和查询二进制图片数据,并通过JSP进行显示的基本步骤。在实际应用中,还需要考虑错误处理、安全性(如SQL注入防护)以及性能优化等细节。此外,为了提高用户体验,通常会将图片数据...
6. **文件上传流程**: 通常,图片上传的过程包括用户在JSP页面上选择文件,通过表单提交到Servlet,Servlet解析请求,读取文件内容,然后将文件内容转化为Blob对象,最后使用JavaBean将Blob对象与相关元数据一起存入...
1. **图片上传与存储**:了解如何通过Struts2上传图片,并将其以Blob形式存储在MySQL数据库中。 2. **图片读取与展示**:掌握如何从数据库中读取图片Blob数据,并将其显示在Web页面上。 #### 开发准备 1. **开发...