jsp通过从数据库读取的字节流(byte[])制作图片
来源:互联网 发布:西安软件新城软件公寓 编辑:程序博客网 时间:2024/05/20 16:41
1、怎样将文件以字节流(byte[])存入数据库,在数据库中存放字节流的类型为image
如:
PreparedStatement ps = CatenateDB.prepare(conn, sql); String F = src+"\\"+f; //文件路径(包含文件名) try { InputStream is = new FileInputStream(F); ps.setBinaryStream(1, is, is.available()); int count = ps.executeUpdate(); if(count>0){ i=1; }else{ i=-1; } } catch (Exception e) { e.printStackTrace(); }
注意:下面方法的conn为连接数据库的类对象,sql是将更新上图所示的表格的head字段
2、怎样将数据库中存放的字节流转换成图片
页面上读取从数据库读取的字节流生成的图片的方法:
<img src="index/makeImage.jsp?id=124"></img>
makeImage.jsp源码:
<%@ page contentType="image/jpeg" pageEncoding="gbk"%><%@ page import="com.other.MakeImage" %><% try{ int id = Integer.parseInt(request.getParameter("id")); //用户userid new MakeImage(id,response.getOutputStream()); }catch(Exception e){ } out.clear(); out = pageContext.pushBody();%>
com.other.MakeImage.java源码:
/** * @System: Online CV System * @Version:1.0 * Copyright @ 2011 by GuangDongOceanUniversity * Class: * Sumarry:从数据库读取二进制字节流(byte[])到页面中生成图片 * Create: 2011.12.31 * Update: */package com.other;import java.io.IOException;import java.io.OutputStream;import java.util.ArrayList;import com.microbolg.DaoMicrobolg;public class MakeImage{ /* 方法: MakeImage * 描述: 从数据库读取二进制字节流(byte[])到页面中生成图片 * 输入: int userid 用户ID , OutputStream os 从数据库读取的图片二进制字节流 * 返回: * 异常处理: */ public MakeImage(int userid,OutputStream os)throws IOException{ DaoMicrobolg dao = new DaoMicrobolg(); ArrayList<Object> array = dao.searchImage(userid); os.write((byte[])array.get(0), 0, ((byte[])array.get(0)).length); os.flush(); os.close(); } }
com.microbolg.DaoMicrobolg类中的searchImage方法:
public ArrayList<Object> searchImage(int userid) { //通过微博信息表的userid获取用户头像字节流 Connection conn = CatenateDB.createConn(); String sql = "select head from user_message where userid=?"; PreparedStatement ps = CatenateDB.prepare(conn, sql); ArrayList<Object> array = new ArrayList<Object>(); try { ps.setInt(1,userid); ResultSet rs = ps.executeQuery(); while(rs.next()){ array.add(rs.getBytes(1)); } } catch (SQLException e) { e.printStackTrace(); } CatenateDB.close(ps); CatenateDB.close(conn); return array; }
CatenateDB.java:
package com.util.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class CatenateDB {public static Connection createConn() {Connection conn = null;try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=microbolg", "sa", "");} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}public static PreparedStatement prepare(Connection conn, String sql) {PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);} catch (SQLException e) {e.printStackTrace();}return ps;}public static void close(Connection conn) {try {conn.close();conn = null;} catch (SQLException e) {e.printStackTrace();}}public static void close(Statement stmt) {try {stmt.close();stmt = null;} catch (SQLException e) {e.printStackTrace();}}public static void close(ResultSet rs) {try {rs.close();rs = null;} catch (SQLException e) {e.printStackTrace();}}}
阅读全文
0 0
- jsp通过从数据库读取的字节流(byte[])制作图片
- jsp 通过流的方式读取图片
- Jsp从数据库读取并显示图片
- 从数据库中字段为byte的图片读取处理存入磁盘
- C# 返回图片的字节流byte[]
- 从数据库读取图片
- 从数据库读取图片
- (图片等)文件流的字节byte传播
- 从Oracle中数据库中读取以Blob类型存储的图片显示在jsp页面中
- 从MySql数据库读取图片
- 在java语言中在byte 字节流读取大于127的情况处理
- 用JSP从数据库中读取图片并显示在网页上
- 用JSP从数据库中读取图片并显示在网页上
- JSP从数据库读取图片显示在表单里出现错误
- SpringMVC从数据库中读取图片显示到JSP页面上
- SpringMVC从数据库中读取图片显示到JSP页面上
- 用JSP从数据库中读取图片并显示在网页上
- 将读取的图片的InputStream流转为字节流
- LeetCode 234. Palindrome Linked List
- Ubuntu总是弹出提示磁盘空间不足
- Java Nio 的Buffer和优缺点
- JDE 查看log
- sun
- jsp通过从数据库读取的字节流(byte[])制作图片
- [分块][数学][瞎搞]Codeforces Round #424 .C Bamboo Partition
- JavaScript笔记(浏览器上--操作DOM)
- redis面试总结
- Spark性能优化指南——基础篇
- java攻城狮之路-面向对象(2)
- JS原生实现多个小球跟着鼠标移动
- jq放大镜
- Linux基础命令总结(CentOS6.9, CentOS7.3)