上传文件
必须是post请求,必须有enctype="multipart/form-data"
要上传多个文件的input标签必须有 multiple属性
<form th:action="@{/fileup}" , method="post" enctype="multipart/form-data">
上传者的用户名 <input type="text" name="username">
上传单个文件
<input type="file" name="headerimg">
上传多个个文件
<input type="file" name="photos" multiple>
<input type="submit" value="确定上传"/>
</form>
@PostMapping(value = {"/fileup"})
@ResponseBody
public String file(@RequestPart("headerimg") MultipartFile headerimg,
@RequestParam("username") String username,
@RequestPart("photos") MultipartFile[] photos,
HttpSession session) throws IOException {
if (!headerimg.isEmpty())//当文件不为空时执行
{
String originalfilename = headerimg.getOriginalFilename();//获取文件真实的姓名 a.txt
System.out.println(originalfilename+"单文件");
headerimg.transferTo(new File("D:\\File\\" + originalfilename));//设置文件在本地的存储路径,并存储文件
}
for (MultipartFile multipartFile : photos) {
String originalfilename = multipartFile.getOriginalFilename();
System.out.println(originalfilename+"多文件");
multipartFile.transferTo(new File("D:\\File\\" + originalfilename));
}
return username;
}
修改默认错误页面
- 默认情况下,Spring mvc 自己拦截
/error路径,来
处理所有错误的映射,出了错,会将错误信息请求转发到/error页面,所以sprinmvc控制器不能再拦截/error路径,否则会报拦截了一个相同的路径两次。而如果直接访问/error会报999错误。
对于浏览器,显示一个页面 - 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据
可以在thymeleaf的文件夹下新建一个error文件夹,里面存放要显示的错误页面,html的名字是要出现的错误即可。
可在页面获取相应的错误参数
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>500了</h1>
<h3 th:text="${timestamp}"></h3>
<h3 th:text="${status}"></h3>
<h3 th:text="${error}"></h3>
<h3 th:text="${message}"></h3>
<h3 th:text="${path}"></h3>
</body>
</html>
如果是4xx.html 则可以拦截所有4开头的错误