第一步:建立数据库:
create
table
test_img(id
number
(
4
),name
varchar
(
20
),img
long
raw
);
第二步:图片上传单元(NewImg.html)
<
html
><
head
><
title
>
添加图片
</
title
></
head
>
< body >
添加图片 < br />
< form method ="post" action ="insertNews.jsp" >
图像ID: < input name ="id" size ="10" >
< br />
选择图像: < input type ="file" name ="image" >
< br />
< input type ="submit" value ="上传" name ="submit" size ="25" >
< input type ="reset" value ="清除" name ="clear" size ="25" >
< br />
</ form >
</ body ></ html >
< body >
添加图片 < br />
< form method ="post" action ="insertNews.jsp" >
图像ID: < input name ="id" size ="10" >
< br />
选择图像: < input type ="file" name ="image" >
< br />
< input type ="submit" value ="上传" name ="submit" size ="25" >
< input type ="reset" value ="清除" name ="clear" size ="25" >
< br />
</ form >
</ body ></ html >
第三步:保存到数据库(InsertImg.jsp)
<%
@ page language
=
"
java
"
%>
<% @ page contentType = " text/html;charset=gb2312 " %>
<% @ page import = " java.util.* " %>
<% @ page import = " java.sql.* " %>
<% @ page import = " java.text.* " %>
<% @ page import = " java.io.* " %>
<%
Class.forName( " oracle.jdbc.driver.OracleDriver " );
String url = " jdbc:oracle:thin:@lubin:1521:b2bdb " ;
Connection con = DriverManager.getConnection(url, " demo " , " demo " );
// 插入数据库
String sql = " insert into test_img values (?,?,?) " ;
// 获取传值ID
String id = request.getParameter( " id " );
// 获取image的路径
String kk = request.getParameter( " image " );
// 转换成file格式
File filename = new File(kk);
// 将文件的长度读出,并转换成Long型
long l1 = filename.length();
int l2 = ( int )l1;
// 以流的格式赋值
FileInputStream fis = new FileInputStream(filename);
PreparedStatement ps = con.prepareStatement(sql);
ps.setString( 1 ,id);
ps.setString( 2 ,filename.getName());
ps.setBinaryStream( 3 ,fis,l2);
// ps.setBinaryStream(3,fis,fis.available());
ps.executeUpdate();
// ps.execute();
ps.close();
fis.close();
out.println( " ok!!! " );
%>
<% @ page contentType = " text/html;charset=gb2312 " %>
<% @ page import = " java.util.* " %>
<% @ page import = " java.sql.* " %>
<% @ page import = " java.text.* " %>
<% @ page import = " java.io.* " %>
<%
Class.forName( " oracle.jdbc.driver.OracleDriver " );
String url = " jdbc:oracle:thin:@lubin:1521:b2bdb " ;
Connection con = DriverManager.getConnection(url, " demo " , " demo " );
// 插入数据库
String sql = " insert into test_img values (?,?,?) " ;
// 获取传值ID
String id = request.getParameter( " id " );
// 获取image的路径
String kk = request.getParameter( " image " );
// 转换成file格式
File filename = new File(kk);
// 将文件的长度读出,并转换成Long型
long l1 = filename.length();
int l2 = ( int )l1;
// 以流的格式赋值
FileInputStream fis = new FileInputStream(filename);
PreparedStatement ps = con.prepareStatement(sql);
ps.setString( 1 ,id);
ps.setString( 2 ,filename.getName());
ps.setBinaryStream( 3 ,fis,l2);
// ps.setBinaryStream(3,fis,fis.available());
ps.executeUpdate();
// ps.execute();
ps.close();
fis.close();
out.println( " ok!!! " );
%>
第四步:显示图片(ShowImg.jsp)
<%
@ page language
=
"
java
"
import
=
"
java.sql.*
"
%>
<% @ page import = " java.io.* " %>
<% @ page contentType = " text/html;charset=gb2312 " %>
<%
Class.forName( " oracle.jdbc.driver.OracleDriver " );
String url = " jdbc:oracle:thin:@lubin:1521:b2bdb " ;
String image_id = (String) request.getParameter( " ID " );
Connection con = DriverManager.getConnection(url, " demo " , " demo " );
PreparedStatement sql = con.prepareStatement( " select * from test_img WHERE id = " + image_id);
ResultSet rs = sql.executeQuery();
rs.next();
// 输入img字段内容到in
InputStream in = rs.getBinaryStream( " img " );
// 以下可是任何处理,比如向页面输出:
response.reset();
// 此处的image/jpeg似乎与显示的图片格式无关
// 因为我显示jsp和gif都没有错误。
response.setContentType( " image/jpeg " );
byte [] b = new byte [ 1024 ];
int len;
while ((len = in.read(b)) > 0 )
response.getOutputStream().write(b, 0 ,len);
in.close();
rs.close();
%>
<% @ page import = " java.io.* " %>
<% @ page contentType = " text/html;charset=gb2312 " %>
<%
Class.forName( " oracle.jdbc.driver.OracleDriver " );
String url = " jdbc:oracle:thin:@lubin:1521:b2bdb " ;
String image_id = (String) request.getParameter( " ID " );
Connection con = DriverManager.getConnection(url, " demo " , " demo " );
PreparedStatement sql = con.prepareStatement( " select * from test_img WHERE id = " + image_id);
ResultSet rs = sql.executeQuery();
rs.next();
// 输入img字段内容到in
InputStream in = rs.getBinaryStream( " img " );
// 以下可是任何处理,比如向页面输出:
response.reset();
// 此处的image/jpeg似乎与显示的图片格式无关
// 因为我显示jsp和gif都没有错误。
response.setContentType( " image/jpeg " );
byte [] b = new byte [ 1024 ];
int len;
while ((len = in.read(b)) > 0 )
response.getOutputStream().write(b, 0 ,len);
in.close();
rs.close();
%>