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();}}}


 



 

 


 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 害怕死亡怎么办才16岁 被罩四个角的绳怎么办 电脑进水花屏了怎么办 法院判了不执行怎么办 优酷安装不上怎么办 保温杯磕了个坑怎么办 韩国旅游签证5年怎么办 新娘裙太长怎么办请茶 花无缺逾期20天怎么办 酷云密码忘了怎么办 我的声音不好听怎么办 耳朵后面长了个硬包怎么办 汽车油表不动了怎么办 油位传感器坏了怎么办 孕妇牙疼耳朵疼怎么办 耳机戴的耳朵疼怎么办 擤鼻涕左耳朵疼怎么办 擤完鼻涕耳朵疼怎么办 五岁儿童耳朵疼怎么办 耳朵里面长了个硬包怎么办 耳朵里有耳屎响怎么办 耳屎粘在耳膜上怎么办 小孩脖子上有淋巴结怎么办 大腿内侧的筋疼怎么办 大腿内侧磨的疼怎么办 孕晚期大腿根疼怎么办 吞口水耳朵会响怎么办 耳朵里面老痒该怎么办 牙疼头疼耳朵疼怎么办 耳朵里流水还疼怎么办 单侧耳朵里面疼怎么办 打到睾丸很疼怎么办 大拇手指关节疼怎么办 早上醒来耳朵嗡嗡响怎么办 两个月宝宝起湿疹怎么办 运动时耳朵闷堵怎么办 刚打的耳洞红肿怎么办 耳洞好了又肿了怎么办 耳洞发炎流血了怎么办 脸上出油怎么办小窍门 耳洞发炎化脓了怎么办