Spring Boot + JSP 实现文件上传功能

本文介绍了如何在SpringBoot项目中使用JSP作为视图解析器,配置了相关依赖和YAML文件,并展示了如何编写Controller处理文件上传,最后通过JSP页面展示上传的图片。详细步骤包括添加servlet和JSTL依赖、设置视图前缀和后缀、定义上传接口及响应HTML、创建JSP表单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot 编写

首先用JSP,要引依赖

 <!-- jsp依赖  -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!-- tomcat 的支持.-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

然后,yaml文件配置

spring:
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp

---------
server:
   port: 8090
   servlet:
     context-path: /test
   tomcat:
     uri-encoding: UTF-8
     max-threads: 1000
     min-spare-threads: 30

注意,此处定义了前缀为"/test",如果不定义前缀,则各个地方都不用’’/test"

然后写contrllor


@RestController
public class MyController {

    /**
     * 上传视频、图片接口
     * */
    @PostMapping(value="/fileUpload")
    @ApiOperation(value = "上传视频、图片",httpMethod = "POST")
    public String uploadFile(@ApiParam("上传的资源")@RequestParam("file") MultipartFile file, Model model, HttpServletRequest request){
        if(file.isEmpty()){
            System.out.println("文件为空");
        }
        //获取文件名
        String fileName = file.getOriginalFilename();
        //后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //上传后的路径
        String filePath = "D://temp-rainy//";
        //新文件名
        fileName = UUID.randomUUID() + suffixName;
        File dest = new File(filePath + fileName);
        if(!dest.getParentFile().exists()){
            dest.getParentFile().mkdir();
        }
        try {
            file.transferTo(dest);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String filename = "/test/temp-rainy/" + fileName;
        model.addAttribute("filename",filename);

        StringBuilder result = new StringBuilder();
        result.append("<html>\n" +
                "<head>\n" +
                "    <title>Title</title>\n" +
                "</head>\n" +
                "<body>");
        result.append("<img src=" + filename + "/>");
        result.append("</body>\n" +
                "</html>");

        return result.toString();
    }
}

然后编写JSP页面,具体整合查看:
【SpringBoot学习】1、SpringBoot 配置 jsp 模板引擎

在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/test/fileUpload" method="post" enctype="multipart/form-data">
    <label>上传图片</label>
    <input type="file" name="file"/>
    <input type="submit" value="上传"/>
</form>
<p>图片:</p>
<img src="${filename }"/>
</body>
</html>

注意:如果yaml文件没有增加"/test"前缀,则controller和jsp中的路径都不用加"/test"

然后启动SpringBoot项目
在这里插入图片描述
在这里插入图片描述
完毕

参考资料:
【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值