文件上传
首先导入文件上传的jar包
-
commons-fileupload-1.4.jar
-
commons-io-1.4.jar
配置控制器
/**
* 文件上传
* @param name
* @param uploadFile
* @param modelMap
* @param session
* @return
*/
@RequestMapping("upload")
public String upload(@RequestParam(value = "username",required = false) String name,
@RequestParam(value = "file",required = false)MultipartFile uploadFile,
ModelMap modelMap, HttpSession session){
// 获取到web下的路径
String img = session.getServletContext().getRealPath("/img");
System.out.println(img);
// 获取上传的文件名
String filename = uploadFile.getOriginalFilename();
System.out.println(filename);
// 拼接路径
File file = new File(img,filename);
// 创建文件
file.getParentFile().mkdirs();
try {
// 上传
uploadFile.transferTo(file);
modelMap.addAttribute("msg","文件上传成功");
} catch (IOException e) {
modelMap.addAttribute("msg","文件上传失败");
}
return "forward:index.jsp";
}
多文件上传
/**
* 多文件查询
* @param name
* @param uploadFile
* @param modelMap
* @param session
* @return
*/
@RequestMapping("uploadAll")
public String uploadAll(@RequestParam(value = "username",required = false) String name,
@RequestParam(value = "file",required = false)MultipartFile[] uploadFile,
ModelMap modelMap, HttpSession session){
// 创建集合
Map<String,String> imgMap = new HashMap<>();
int count = 1;
// 遍历上传文件的集合
for (MultipartFile file:uploadFile) {
// 判断文件的大小
if (file.getSize()>0) {
// 获取文件名
String originalFilename = file.getOriginalFilename();
// 判断文件是否是图片
if (originalFilename.endsWith(".jpg")||originalFilename.endsWith(".png")||
originalFilename.endsWith(".gif")) {
// 获取项目web下的路径
String img = session.getServletContext().getRealPath("img");
System.out.println(img);
// 拼接路径
File file1 = new File(img, originalFilename);
try {
// 上传文件
file.transferTo(file1);
imgMap.put("img"+count++,originalFilename);
modelMap.addAttribute("msg","修改成功");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
modelMap.addAttribute("img",imgMap);
// 返回页面
return "forward:index.jsp";
}
配置spring.xml的文件上传器
<!-- 配置上传配置器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="#{1024*1024*20}"/>
<property name="maxUploadSizePerFile" value="#{1024*1024*2}"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
配置jsp页面
<%--
Created by IntelliJ IDEA.
User: TANCHENG
Date: 2021/7/6
Time: 17:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
${requestScope.msg}
<img src="img/${img.img1}" alt="${img.img2}">
<img src="img/${img.img2}" alt="${img.img3}">
<img src="img/${img.img3}" alt="${img.img4}">
<form method="post" enctype="multipart/form-data" action="uploadAll">
<input type="file" name="file" onchange="dianji()">文件上传
<input type="file" name="file">文件上传
<input type="file" name="file">文件上传
<input type="text" name="username"/>
<input type="submit">
</form>
</body>
</html>
运行就会下载到out里面