JSP图片的读写操作

第一步:建立数据库:

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 >  

第三步:保存到数据库(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!!! " ); 
%>  

第四步:显示图片(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(); 
%>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值