jsp 上传图片 mysql_jsp如何上传照片到mysql,再查询在jsp中显示
时间: 2023-08-15 21:07:05 浏览: 124
实现上传图片到 MySQL 和在 JSP 中显示图片的基本步骤如下:
1. 创建数据库表
创建一个名为 "images" 的表,包含以下列: id(自增长),name(varchar),image(mediumblob)。
2. 编写上传图片的 JSP 文件
在上传图片的 JSP 文件中,使用表单上传图片,将图片存储到服务器的指定目录下,然后将图片的信息(名称和二进制数据)插入到 MySQL 数据库中。
```jsp
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%
String name = request.getParameter("name"); // 获取图片名称
Part filePart = request.getPart("file"); // 获取上传的文件
InputStream inputStream = filePart.getInputStream(); // 获取文件输入流
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// 插入图片信息到数据库
String sql = "INSERT INTO images (name, image) values (?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, name);
statement.setBinaryStream(2, inputStream, (int) filePart.getSize());
statement.executeUpdate();
// 关闭连接
statement.close();
conn.close();
%>
```
3. 编写查询图片的 JSP 文件
在查询图片的 JSP 文件中,从 MySQL 数据库中查询图片信息,然后将图片信息在页面上显示出来。
```jsp
<%@ page import="java.sql.*" %>
<%
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// 查询图片信息
String sql = "SELECT * FROM images WHERE id=?";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setInt(1, Integer.parseInt(request.getParameter("id")));
ResultSet rs = statement.executeQuery();
if (rs.next()) {
// 获取图片名称和二进制数据
String name = rs.getString("name");
byte[] imageBytes = rs.getBytes("image");
// 将二进制数据写入输出流
response.setContentType("image/jpeg");
OutputStream outputStream = response.getOutputStream();
outputStream.write(imageBytes);
outputStream.close();
}
// 关闭连接
rs.close();
statement.close();
conn.close();
%>
```
4. 在 JSP 页面中显示图片
在 JSP 页面中,使用以下代码将图片显示出来:
```html
<img src="showImage.jsp?id=1">
```
其中,showImage.jsp 是查询图片的 JSP 文件,id 参数是图片的 ID。
阅读全文