S框架图片上传至数据库的完整指南,轻松实现图片存储与管理

文章导读
首先,在S框架中配置数据库连接,然后创建图片表,字段包括id、name、type、size和content(二进制类型)。前端表单使用multipart/form-data,input type=file。后台Controller接收MultipartFile,读取字节数组,直接存入数据库。代码示例:@PostMapping("/upload") public String upload(@Req
📋 目录
  1. A 步骤1:数据库准备
  2. B 步骤2:Spring Boot配置
  3. C 步骤3:Controller实现
  4. D 前端HTML表单
  5. E 显示图片
  6. F 优化建议
A A

首先,在S框架中配置数据库连接,然后创建图片表,字段包括id、name、type、size和content(二进制类型)。前端表单使用multipart/form-data,input type=file。后台Controller接收MultipartFile,读取字节数组,直接存入数据库。代码示例:@PostMapping("/upload") public String upload(@RequestParam("file") MultipartFile file) { byte[] bytes = file.getBytes(); // 插入数据库 return "success"; }

步骤1:数据库准备

创建表:CREATE TABLE images ( id INT PRIMARY KEY AUTO_INCREMENT, filename VARCHAR(255), content LONGBLOB );

步骤2:Spring Boot配置

在application.properties中添加spring.servlet.multipart.max-file-size=10MB和spring.servlet.multipart.max-request-size=10MB。注入DataSource和JdbcTemplate。

S框架图片上传至数据库的完整指南,轻松实现图片存储与管理

步骤3:Controller实现

@Controller public class ImageController { @Autowired private JdbcTemplate jdbcTemplate; @PostMapping("/uploadImage") public String uploadImage(@RequestParam("image") MultipartFile file) throws IOException { String sql = "INSERT INTO images (filename, content) VALUES (?, ?)"; jdbcTemplate.update(sql, file.getOriginalFilename(), file.getBytes()); return "上传成功"; } }

前端HTML表单

<form action="/uploadImage" method="post" enctype="multipart/form-data"> <input type="file" name="image" /> <button type="submit">上传</button> </form>

显示图片

查询数据库获取bytes,response.setContentType("image/jpeg"); response.getOutputStream().write(bytes);

S框架图片上传至数据库的完整指南,轻松实现图片存储与管理

优化建议

图片太大时压缩,或者用文件系统+路径存数据库。事务管理确保一致性。

FAQ
Q: 上传大图片会失败吗?
A: 设置multipart.max-file-size避免。
Q: 数据库存储图片安全吗?
A: 适合小量,备份重要。
Q: 如何显示存入的图片?
A: Servlet输出字节流,设置Content-Type。
Q: 支持多图上传?
A: 用MultipartFile[]数组循环处理。