java如何存取image字段

原创 2007年09月22日 16:51:00
 

HTML Tags and JavaScript tutorial



java如何存取image字段




第一步:建立数据库
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都没有错误。icech不是很懂,都是参考别人的。
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();
%>
 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Flex + java + orcale 存取Image

最近有个小东西是关于Flex +java + orcale 在页面显示Image,刚开始时一筹莫展啊。。。行了不罗嗦,进主题。 首先:确定一下设计的思路,能够获取本地image,同时存到orcale...

Java Oracle数据库BLOB字段的存取

Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。  写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个curs...

存储图片到数据库的image字段中,并在Winform中显示图片

有人问到图片如何存储到数据库中,以前也做过,但年代已有点久远,选择使用的软件都升级了,有些东西已废弃。所以花了点时间用VS2008+SQL Server 2005做了一个测试程序,希望能对人有所帮助。...

第六章 用户权限管理(七) -- C#读写数据库Image字段

6.6 角色用户管理设计与实现 6.6.4 员工信息管理 Employees.aspx.cs文件代码: 图6.23 DataGrid事件处理函数       using System.I...

c#读写MSSQL数据库image字段内容

一:MSSQL帮助说明     Microsoft SQL Server 2005 将超过 8,000 个字符的字符串和大于 8,000 字节的二进制数据存储为名为 text 和 image 的特殊...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)