6:对数据库存取图片进行的 *** 作:
核心思想:通过二进制流的形式进行存储和读取。
具体:存储图片:一般是通过文件上传的方式进行存储的
1.首先通过request获得表单中图片的地址
2.然后根据这个路径可以使FileInputStream获得文件输入流
3.pstmt.setBinaryStream(i,
fis,
fis.available())
最后pstmt.executeUpdate()就完成整个插入语句了。
读取:1.根据url的id传一个对应数据库摸个图片的id号
2.根据这个id执行查询,通过rst.getBinaryStream(1)返回一个输入流(里面存的是图片)
3.读输入流,放到字节数组中,再通过response返回一个能输出二进制流的ServletOutputStream实例(ServletOutputStream
sos=
response.getOutputStream()
),
4.通过这个输出流把字节数组的字节流写出
希望对你有所帮助哈
1.去文件名也就是
你的图片
实际上是存在你的
项目
中的
读的只是你的文件名加上
路径
就行了,
2.添加图片的时候,以IO的形式,把图片真真读到数据库,取的时候,取出来,进行一次转换,显示图片。
我知道的就是这两种思路
希望对你有用!
/SkyShop/images/brand/2010/02/09/09/4599577f-7fca-4163-a752-24a3e331ea39.jpg像一楼说的是正解,不行的原因可能是根的位置问题,自己对着检查一下。
另外你这个路径太长。。太不好测试了,先弄个简单点的。
你右键点图片,属性的地址应该是
http://localhost:8080/SkyShop/images/brand/2010/02/09/09/4599577f-7fca-4163-a752-24a3e331ea39.jpg
这个才是你的服务器上图片的地址。E:的是计算机的真实路径,和服务器上的绝对路径,相对路径不是一回事。服务器启动后,只能访问当前服务器路径之内的文件,而windows下打开html文件不受此限制,所以不能用计算机的路径。
保存到tomcat中就是保存到项目中了,如果你希望保存到源代码中,可以去改tomcat的server.xml配置文件,
<Context path="/" docBase="D:\workspace\SkyShop\ROOT"
debug="0" privileged="true">
</Context>
并删除webapps下的内容。
或者以流的方式将写到图片写到数据库中。
最后建议你去看看关于相对路径的文章,篇幅有限,说的还是不太清楚。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)