Springboot简单实现文件上传

简介: Springboot简单实现文件上传

1 前言

下面是一个简单的在springboot项目里的实现文件上传简单例子。


2 创建一个Config

首先在config文件夹下创建一个MyWebConfig的配置类,用于配置资源映射路径。

图 2.1 配置类

然后编写这个类,首先就是注解@Configuration不要忘记了,否则配置不会生效;

需要实现一个WebMvcConfigurer的类,如下图2.1;

接着下面的方法里配置你想要的路径,

addResourceHandler:访问映射路径,

addResourceLocations:资源绝对路径。

图 2.1 配置类


3 Controller层

再是在controller层里进行接口以及操作的编写:

@Controller

public class FileContrllor {

    @GetMapping(value = "/fileUpload")

    public String file() {

        return "file/upload";

    }

 

    @PostMapping(value = "/fileUpload")

    public String fileUpload(@RequestParam(value = "file") MultipartFile file, Model model, HttpServletRequest request) {

 

        if (file.isEmpty()) {

            return "file/upload";

        }

        String fileName = file.getOriginalFilename();

        String suffixName = fileName.substring(fileName.lastIndexOf("."));

        String filePath = "D://computer_pic//";

        fileName = UUID.randomUUID() + suffixName;

        File dest = new File(filePath + fileName);

        if (!dest.getParentFile().exists()) {

            dest.getParentFile().mkdirs();

        }

        try {

            file.transferTo(dest);

        } catch (IOException e) {

            e.printStackTrace();

        }

        String filename = "/computer_pic/" + fileName;

        model.addAttribute("filename", filename);

        return "file/upload";

    }

}

首先就是也不要忘记注解@Controller,然后是Get接口,进入后面展示使用的页面,然后是Post接口,提交选择的图片等文件。(String解释:fileName:文件名、并且在后面由UUID和后缀名组成了新的唯一辨识文件名;suffixName:后缀名;filePath:上传文件后的路径)


4 页面

最后就是页面的内容,这里是使用了thymeleaf进行整合,也就是图片对应model.addAttribute的地方,同时表单中的enctype="multipart/form-data"的意思,是设置表单的MIME编码格式。

默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;

只有使用了multipart/form-data,才能完整的传递文件数据。

图 4.1 页面代码

图 4.2 页面效果


5 扩展提示

在使用时发现了一个问题,就是上传超过1M的图片或文件时会报错。

于是,需要设置一下:在application.properties 文件里加入如下配置:

#设置单个文件大小

spring.servlet.multipart.max-file-size= 100MB

#设置单次请求文件的总大小

spring.servlet.multipart.max-request-size= 100MB

这样就可以按自己的要求进行设置上传大小限制了。

目录
打赏
0
0
0
0
14
分享
相关文章
Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
2499 0
Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
SpringBoot整合SpringSecurity带图片验证码简单实现
针对把code码放到httpServletRequest中易引发并发问题,考虑之后,实现把code码放入到login的提交表单内,与用户名和密码一起发送。
SpringBoot整合SpringSecurity带图片验证码简单实现
Neo4j的springboot的简单实现
# 引言 今天带来通过springboot来操作neo4j的教程。 # pom.xml的依赖 ``` <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.
Neo4j的springboot的简单实现
SpringBoot+拦截器+自定义异常+自定义注解+全局异常处理简单实现接口权限管理
提到权限管理这块肯定很多人第一想到的就是Springboot Security或者是Shiro安全框架,但本文介绍的并不是这两种,不是因为他们不好用,实在是自己太懒了,我觉得一个拦截器加上其他的一些处理就能满足项目的需求,我又何必去多用一个框架呢,这篇文章也不是去对比谁好谁坏,各位自行抉择。
84137 6
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!

热门文章

最新文章