Springboot上传文件和修改默认错误页面

这篇博客介绍了如何使用Spring MVC进行文件上传,包括单个和多个文件的上传,以及如何设置上传表单。同时,文章还讲解了如何自定义Spring MVC的错误页面,以展示更友好的错误信息,支持不同类型的错误响应。
摘要由CSDN通过智能技术生成

上传文件

必须是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开头的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值