上篇文章中我介绍了:JavaWeb利用jsp 选取图片并将相对路径修改为绝对路径upload上传到Mysql数据库中
下面介绍怎么将图片读出来
首先创建一个openImage.jsp页面
代码:
<%--
Created by IntelliJ IDEA.
User: wangzeyi
Date: 2020/12/18
Time: 下午4:15
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.io.*" %>
<html>
<body>
<form name="form1" method="post">
图片名称:
<input type="text" name="filename" value=""/>
<input type="submit" name="Submit" value="提交"/>
</form>
<%
String filename = request.getParameter("filename");
if(filename!=null){
Class.forName("com.mysql.jdbc.Driver");
//加载JDBC驱动程序
String url = "jdbc:mysql://localhost:3306/test2";
//file_db为数据库的名称
String user = "root";
//连接Mysql数据库的密码
String password = "Wzy768291";
Connection conn = null;
try {
conn = DriverManager.getConnection(url,user,password);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//数据库连接
String sql = "select * from filedata where filename = '"+filename+"'";
//查询filename为01的记录的pic字段
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch (SQLException e){}
try {
if(rs.next()){
//InputStream in = rs.getBinaryStream(1);
filename = rs.getString(1);
String path = rs.getString(2);
%>
<img src="<%=path+"/"+filename%>" width="500" alt=" ">
<%
}
else {
out.println(filename+"文件不存在");
}
}
catch (Exception e){
System.out.println(e);
}
rs.close();
stmt.close();
}
%>
</body>
</html>
这里我们操作上篇文章导入图片后的数据库,
这句话是关键,导出我们之前保存的绝对路径path和filename ,将搜索内容与之判断之后,
用这句话将图片输出出来
如图:
而如果你没有在web文件夹创建upload文件夹,可能会出现这种情况,照片打不开:
检查元素我们发现:
404错误,要么是照片被删掉了,要么是没有中介upload输出,虽然在存储照片过程中一切正常,但读取的时候就不一定了。
下面是正常图片输出时网页显示的结果,作为参考:
参考书:JSP应用与开发技术