至于如何去数据库取路径这个就是简单的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>
大致应该是这样
一般有两种情况,一种是前端开发需要显示的图片,这个是页面构成必须的元素,一般这些会做 动静分离,后台接口 跟 前端资源会部署在不同的服务器上,有不同的优化,一般会有转发的服务器,判断是后台接口,就转发到后台的服务器,如果是前端资源,就转发到前台的服务器。一般情况下,前端服务器,跟后台的服务器,是分离开的,有不同的人去管理,如果项目小的话,可能就全放在一个。这个优化的化,你可以去了解下 CDN原理。这个是用来优化静态资源加载情况的。
另一种情况是,显示的图片,不是前端构成的,是用户上传文件产生的,这种情况下,现在一般有专门的对象存储,用过 七牛云,跟阿里的。这个的逻辑是文件上传的时候,不是上传到我们自己的服务器,上传到专门的云服务器,我们自己数据库只需要保存这些上传文件的地址,真正使用的时候,把连接给前端,前端自动会根据内容到专门的云服务器上去获取。所有的安全,优化,带宽,缓存命中,这些都有由云服务器去保证。 简单来说,只有有钱,这些东西根本不会成为你项目的瓶颈。
作为技术,我们讨论的应该不是这些。图片会做备份,这个可以有专门的磁盘阵列去实现,简单来说,就是上传的内容保存到磁盘的时候,会自动多保存几个备份到不同的磁盘上。还是那句话,多去了解下CDN的原理,最后这段,个人理解,不一定对。
ublic HttpServletResponse download(String path, HttpServletResponse response) {try {
// path是指欲下载的文件的路径。
File file = new File(path)
// 取得文件名。
String filename = file.getName()
// 取得文件的后缀名。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase()
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path))
byte[] buffer = new byte[fis.available()]
fis.read(buffer)
fis.close()
// 清空response
response.reset()
// 设置response的Header
response.addHeader("Content-Disposition", "attachmentfilename=" + new String(filename.getBytes()))
response.addHeader("Content-Length", "" + file.length())
OutputStream toClient = new BufferedOutputStream(response.getOutputStream())
response.setContentType("application/octet-stream")
toClient.write(buffer)
toClient.flush()
toClient.close()
} catch (IOException ex) {
ex.printStackTrace()
}
return response
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)