关于java:Spring-Boot-2x基础教程实现文件上传

6次阅读

共计 2043 个字符,预计需要花费 6 分钟才能阅读完成。

文件上传的性能实现是咱们做 Web 利用时候最为常见的利用场景,比方:实现头像的上传,Excel 文件数据的导入等性能,都须要咱们先实现文件的上传,而后再做图片的裁剪,excel 数据的解析入库等后续操作。

明天通过这篇文章,咱们就来一起学习一下如何在 Spring Boot 中实现文件的上传。

入手试试

第一步:创立一个根底的 Spring Boot 我的项目,如果还不会的话就先看看这篇《疾速入门》。

第二步 :在pom.xml 中引入模版引擎依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

你也能够抉择其余你相熟的模版引擎,比方:Freemarker。

第三步 :在resources 目录下,创立新目录 templates;在templates 目录下再创立一个文件上传的页面upload.html,内容如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8" />
    <title> 文件上传页面 </title>
</head>
<body>
<h1> 文件上传页面 </h1>
<form method="post" action="/upload" enctype="multipart/form-data">
    抉择要上传的文件:<input type="file" name="file"><br>
    <hr>
    <input type="submit" value="提交">
</form>
</body>
</html>

第四步:创立文件上传的解决控制器,命名为 UploadController

@Controller
@Slf4j
public class UploadController {@Value("${file.upload.path}")
    private String path;

    @GetMapping("/")
    public String uploadPage() {return "upload";}

    @PostMapping("/upload")
    @ResponseBody
    public String create(@RequestPart MultipartFile file) throws IOException {String fileName = file.getOriginalFilename();
        String filePath = path + fileName;

        File dest = new File(filePath);
        Files.copy(file.getInputStream(), dest.toPath());
        return "Upload file success :" + dest.getAbsolutePath();}

}

其中蕴含这几个重要元素:

  1. 成员变量 path,通过@Value 注入配置文件中的 file.upload.path 属性。这个配置用来定义文件上传后要保留的目录地位。
  2. GET 申请,门路 /,用于显示upload.html 这个文件上传页面。
  3. POST 申请。门路 /upload,用于解决上传的文件,即:保留到file.upload.path 配置的门路上面。

留神:这里次要演示文件上传的次要流程,实在利用还有更多内容要思考,比方:文件上传后的文件名解决(避免重名)、分布式状况下文件上传后如何共享拜访等。更高级的最初,咱们后续文章持续讲。

第五步 :编辑application.properties 配置文件

spring.servlet.multipart.max-file-size=2MB
spring.servlet.multipart.max-request-size=2MB

file.upload.path=/Users/didi/

前两个参数用于限度了上传申请和上传文件的大小,而 file.upload.path 是下面咱们本人定义的用来保留上传文件的门路。

更多本系列收费教程连载「点击进入汇总目录」

测试验证

第一步:启动 Spring Boot 利用,拜访http://localhost:8080,能够看到如下的文件上传页面。

第二步:抉择一个不大于 2MB 的文件,点击“提交”按钮,实现上传。

如果上传胜利,将显示相似上面的页面:

你能够依据打印的文件门路去查看文件是否真的上传了。

代码示例

本文的相干例子能够查看上面仓库中的 chapter4-3 目录:

  • Github:https://github.com/dyc87112/SpringBoot-Learning/
  • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

如果您感觉本文不错,欢送 Star 反对,您的关注是我保持的能源!

欢送关注我的公众号:程序猿 DD,取得独家整顿的收费学习资源助力你的 Java 学习之路!另每周赠书不停哦~

正文完
 0