java如何将图片保存在数据库中

通常采样存路径的方式是吗?那存了路径如何读取出来呢?谁能写个例子,谢谢

一般都是这样的,就是在你服务器有一个专门放置图片的文件夹,然后数据库保存的是你服务器图片的路径。需要用的时候就去数据库里面取路径。得到路径以后你想怎么处理图片是你的事情了。
至于如何去数据库取路径这个就是简单的db操作。
加载驱动类:
Class.forName(DBDriver);
获取连接:
Connection conn = DriverManager.getConnection(url,username,password);
创建操作对象:
PreparedStatement stmt = con.prepareStatement(sql);

执行操作:
ResultSet rs = stmt.executeQuery();

遍历结果:
List list = new ArrayList();
while(rs.next()){
//具体操作,通常用rs.getString(name)取值
Image img = new Image();//图片类对应你数据库中图片表格
img.setSrc(rs.getString("src"));//假设你数据库中image表中图片地址字段是src
list.add(img);
}
记得关闭资源:
rs.close();
stmt.close();
con.close();

看你的意思是已经取出来了不知道怎么显示:
你取出来之后可以把图片放在一个list里面然后去页面上遍历这个list
<c:forEach var="chakan1" items="list">

<tr>
<td>
<img src="${chakan1.src}"/>
</td>
</tr>
</c:forEach>
大致应该是这样追问

这样读出来的不是路径吗,比如数据库里是D:\\123.jpg.读出来不也是D:\123.jpg,而不是图片吗,我的意思是如何解析出来显示

追答

你不能用绝对路径,在本机可能没事但是换了台机子会出问题,你随便找一个网上的图片试试。
解析不是你要管的事情, src需要的就只是你图片的地址

追问

哥们,相对路径是相对什么的路径?相对哪个文件夹而言的。。。你看下面我的追问,我这样写为什么显示不出来,路径没问题

追答

你看下你网页的源码,再看看路径,你下面这种方式能取到吗?

追问

那应该怎么写啊???

追答

和你的action里面申明的对象一样就能娶到值,比如你页面是

那么你action需要有一个list,然后赋予set get方法

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-22
一般都是存路径,
1。首先图片定义好名称存放到指定路径下
2。读的时候把取出路径,在前端页面上使用
<img src="<%=取出来的路径%>">追问



这样写对吗,images是存路径的表的列名,我用ssh中查询了将结果集存入chakan1的session中,这样好像不行

第2个回答  2013-04-23
不想存路径可以把图片转成2进制存入数据库,用BLOB类型,用IO流读出了,输出。追问

io流如何读出,能写下吗?

追答

public class ReadImage extends ActionSupport {
private int imageId;
private IProduct ip;
public int getImageId() {
return imageId;
}
public void setImageId(int imageId) {
this.imageId = imageId;
}
public IProduct getIp() {
return ip;
}
public void setIp(IProduct ip) {
this.ip = ip;
}
@Override
public String execute() throws Exception {
try{
//这是从数据库取出实体
Easybuy_product product=ip.findProductById(imageId);
//得到实体类的一个属性 byte数组类型
byte[] imageData=product.getEp_file();
System.out.println(imageData.length);
HttpServletResponse resp=ServletActionContext.getResponse();
//得到输出流
OutputStream out=resp.getOutputStream();
//输出
out.write(imageData);
System.out.println("图片输出成功");
}catch(Exception e){
e.printStackTrace();
System.out.println("输出图片失败");
}
return null;
}

}
前台页面

第3个回答  2013-04-24
你可以参考下这个例子。至于你说的保存图片方式,主要看客户要求了。 有些以二进制存到数据库中. 有些存路径。后台返回一个string类型的路径 然后在呈现页面定义一个img标签的src设置成该路径即可. http://www.cnblogs.com/demingblog/archive/2013/02/25/2932161.html
第4个回答  2013-04-22
找到你汤姆猫或者其他服务器的目录,找到你的项目,然后对比你localhost:port/ooxx是什么样的就知道相对路劲是什么样的了,这样就取到了图片
相似回答