JSP图片的读写操作

来源:互联网 发布:java解析二维码图片 编辑:程序博客网 时间:2024/05/16 18:42

第一步:建立数据库:

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(); 
%>
原创粉丝点击