1.导入jar包
2.修改配置类
在springmvc.xml添加bean
<!-- 配置文件上传处理器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置在内存中允许的最大文件大小,超过此大小的文件将被写入磁盘 -->
<property name="maxInMemorySize" value="500000"></property>
<!-- 设置默认的文件编码,以支持多语言文件名和文件内容 -->
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
3.设置路径
在Tomcat安装目录中的webapps中新建文件夹upload,用于存放本地文件
4.修改Tomcat
打开IDEA
5.修改controller
这里以新增为例
/**
* 处理条目插入请求
* 该方法用于将用户提交的条目和相关文件插入到系统中
*/
@RequestMapping("/EntryInsertServlet")
public String doInsert(Model model,
Entry entry,
@RequestParam(value = "myFile", required = false) MultipartFile[] multipartFiles) {
String picpath = "";
// 遍历上传的文件
for (MultipartFile multipartFile : multipartFiles) {
String fileName = multipartFile.getOriginalFilename();
// 检查文件名是否为空
if (fileName != null && !fileName.equals("")) {
try {
// 获取并设置上传文件的保存路径
String path = System.getProperty("user.dir").replace("bin", "webapps") + "/upload/";
// 为上传的文件生成唯一的文件名,防止重名
fileName = System.currentTimeMillis() + "_" + multipartFile.getOriginalFilename();
File file = new File(path, fileName);
// 将文件保存到服务器
multipartFile.transferTo(file);
// 记录文件名,用于后续操作
picpath += fileName + ",";
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 设置条目的图片路径
entry.setPicpath(picpath);
// 调用业务逻辑插入条目
int insert = entryServlet.insert(entry);
// 根据插入结果添加消息到模型,以便在页面上显示
model.addAttribute("msg", insert > 0 ? "增加成功" : "增加失败");
// 重定向到条目列表页面
return "redirect:EntryListServlet";
}
JSP页面的代码示例
显示:通过c:forTokens 将值按照 ','分割,名称为pic,在img的src添加/upload/然后拼接${pic}
插入:请求改成post,entype改成“multipart/form-data”
<form action="EntryInsertServlet" method="post"enctype="multipart/form-data">
<table border="1px" align="center">
<tr>
<td>图片上传</td>
<td><input type="file" name="myFile"></td>
</tr>
<tr>
<td>图片上传</td>
<td><input type="file" name="myFile"></td>
</tr>
<tr>
<td>图片上传</td>
<td><input type="file" name="myFile"></td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<input type="submit" value="提交">
<input type="button" value="返回" onclick="fh()">
</td>
</tr>
</table>
<form/>