
核心思想:通过二进制流的形式进行存储和读取。
具体:存储图片:一般是通过文件上传的方式进行存储的
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.通过这个输出流把字节数组的字节流写出
希望对你有所帮助哈
不能这样返回,你在服务器上的图片一定要能被web访问到才可以,举个例子,比如说你服务器上图片目录在D:\Pic下,下面有张图1.jpg,那你在IIS配置的时候,就要把这个pic目录加上(比如说做成虚拟目录),这样这个jpg就可以用类似于http://服务器/Pic/1.jpg来访问到。然后你webserver返回的时候,先取图片路径,分离出文件名,然后加上http://服务器/pic/文件名,返回这个值就行了。
把图片src保存到服务器数据库走数据库直接访问表查询存放images字段就好了
后台:
//假设$res是你已经从数据库取出的值(已经遍历过了)
$dir = '根目录/public/images/'
echo '<img src='.$dir.$res.'>'
在前台这样显示<img src='根目录/public/images/***.png'>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)