java web开发中把图片存取怎么做 关于在java web开发中把图片存取怎么做呀?????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般在数据库都存储的是Image的路径和名称 数据库MYSQL:把图片存入数据库/*---------------表结构------------表名:student2+--------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+--------+-------------+------+-----+---------+-------+| id | int(4) | NO | PRI | NULL | || name | varchar(20) | YES | | NULL | || stupic | blob | YES | | NULL | |+--------+-------------+------+-----+---------+-------+*/import java.io.*;import java.sql.*;public class StoreBLOB { public static void main(String[] args) { //连接MySQl数据库 Connection con=DBManager.getConnection(); PreparedStatement ps=null; InputStream in=null; try { //从本地硬盘读取一张读片 in=new FileInputStream("d:/111.jpg"); ps=con.prepareStatement("insert into student2 values(?,?,?)"); ps.setInt(1,2); ps.setString(2, "Tom"); ps.setBinaryStream(3, in, in.available()); ps.executeUpdate(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { //关闭流 if(in!=null) in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //关闭相关连接 DBManager.close(ps, con); } }}把图片从数据库中取出:import java.sql.*;import java.io.*;public class GetBLOB { public static void main(String[] args) { Connection con=DBManager.getConnection(); Statement st=null; ResultSet rs=null; InputStream in=null; OutputStream out=null; try { st=con.createStatement(); rs=st.executeQuery("select stupic from student2 where id=2"); rs.next(); //将光标指向第一行 //从rs中读取stupic放进InputStream对象中 in=rs.getBinaryStream("stupic"); //申明byte数组,用来存放图片流 byte[] b=new byte[40000]; in.read(b); //从InputStream对象中读取数据放进byte数组中 //实例化OutputStream对象,在D盘创建一个图片文件 out=new FileOutputStream("d:/222.jpg"); //将文件输出,内容则为byte数组里面的数据 out.write(b); out.flush(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if(in!=null) in.close(); if(out!=null) out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } DBManager.close(rs, st, con);//关闭相关连接 } }} 问个 关于JNDI 连数据源的问题 请问大家spring 2.0可以使用acegi进行权限管理吗 applet 操作本地文件出错 克隆对象时,为什么要调用父类的 clone() 方法,这里又不是要克隆父类对象。 DES加密解密问题 jbuilder2006对web.xml配置问题 如何得到32位的MD5结果,sun的api得到的是16位的 有问题请叫各位大哥啦! 如何拆分这样的字符串,如题 那里有比较快的下载,J2SK1.4.0? 求大数字的问题!!! Jtable如何实现未用分页打印
把图片存入数据库
/*
---------------表结构------------
表名:student2+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| stupic | blob | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+*/import java.io.*;
import java.sql.*;
public class StoreBLOB {
public static void main(String[] args) {
//连接MySQl数据库
Connection con=DBManager.getConnection();
PreparedStatement ps=null;
InputStream in=null;
try {
//从本地硬盘读取一张读片
in=new FileInputStream("d:/111.jpg");
ps=con.prepareStatement("insert into student2 values(?,?,?)");
ps.setInt(1,2);
ps.setString(2, "Tom");
ps.setBinaryStream(3, in, in.available());
ps.executeUpdate();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
//关闭流
if(in!=null) in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//关闭相关连接
DBManager.close(ps, con);
}
}
}把图片从数据库中取出:
import java.sql.*;
import java.io.*;
public class GetBLOB {
public static void main(String[] args) {
Connection con=DBManager.getConnection();
Statement st=null;
ResultSet rs=null;
InputStream in=null;
OutputStream out=null; try {
st=con.createStatement();
rs=st.executeQuery("select stupic from student2 where id=2");
rs.next(); //将光标指向第一行
//从rs中读取stupic放进InputStream对象中
in=rs.getBinaryStream("stupic");
//申明byte数组,用来存放图片流
byte[] b=new byte[40000];
in.read(b); //从InputStream对象中读取数据放进byte数组中
//实例化OutputStream对象,在D盘创建一个图片文件
out=new FileOutputStream("d:/222.jpg");
//将文件输出,内容则为byte数组里面的数据
out.write(b);
out.flush(); } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
if(in!=null)
in.close();
if(out!=null)
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBManager.close(rs, st, con);//关闭相关连接
}
}
}