-
【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能
2019-09-03 23:04:20毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。 我这里使用的是 springboot 2.0.3,...我先看一下《颈椎病康复指南》再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。
我这里使用的是 springboot 2.0.3,不需要导入相关jar包,2.x 的版本已经整合进去了,直接使用即可。
spring官网提供了 springboot 的文件上传下载案例,这是网址:https://spring.io/guides/gs/uploading-files/,使用的是流的输出,对于我这个新手来说,直接不理解,所以略过,通过网上查阅大量资料,终于把问题解决了。下面的案例是 springboot2.x 图片上传与回显。我使用的工具是idea。
1、创建idea默认的springboot项目,我的版本是2.0.3
2、创建一个控制层FileController
package com.rainy.controller; import org.apache.catalina.servlet4preview.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.util.UUID; /** * 文件上传 */ @Controller public class FileController { @GetMapping(value = "/file") public String file() { return "file"; } @PostMapping(value = "/fileUpload") public String fileUpload(@RequestParam(value = "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().mkdirs(); } try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } String filename = "/temp-rainy/" + fileName; model.addAttribute("filename", filename); return "file"; } }
3、创建MyWebMvcConfigurer,这里是配置资源映射路径,详细点的介绍看这篇文章:https://blog.csdn.net/qq_38762237/article/details/81283241
/** * 资源映射路径 */ @Configuration public class MyWebAppConfigurer implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/temp-rainy/**").addResourceLocations("file:D:/temp-rainy/"); } }
4、jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="/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>
注意一点:我是使用jsp引擎来渲染,因为我不会用 Thymeleaf,添加jsp页面,springboot使用jsp页面是需要进行配置jsp整合的,默认的是 Thymeleaf 的页面,简单的就是HTML页面
springboot配置jsp页面的方法:https://blog.csdn.net/qq_38762237/article/details/81283352
如果有什么问题的话,可以告诉我,QQ:3210054449,或者评论留言,这是我的首页:https://blog.csdn.net/qq_38762237,都是我在学习过程中遇到的一些问题做的记录。、
交流
-
SpringBoot学习目录
2019-08-05 10:29:38SpringBoot目录 SpringBoot 入门篇 SpringBoot Web篇 SpringBoot Redis 篇 SpringBoot Mybatis篇 SpringBoot RabbitMQ篇 SpringBoot的定时器 SpringBoot集成邮件服务 SpringBoot 集成MongoDB SpringBoot 集成Shiro ...去年都制定好了编写SpringBoot学习文档,一方面自己可以加深对SpringBoot的认知,另一方面便于大家参考、交流,共同提升。但都因为各种原因耽搁了,为了督促自己,现把目标列下来,一步一步去实现,加油!!!
SpringBoot目录- SpringBoot 入门篇
- SpringBoot Web篇
- SpringBoot Redis 篇
- SpringBoot Mybatis篇
- SpringBoot RabbitMQ篇
- SpringBoot的定时器
- SpringBoot集成邮件服务
- SpringBoot 集成MongoDB
- SpringBoot 集成Shiro
- SpringBoot 文件上传
- 使用Spring Boot集成FastDFS
- SpringBoot打包
- Docker 部署 Spring Boot
- Jenkins部署SpringBoot
- SpringBoot 集成Memcached
- SpringBoot 集成Swagger
- Spring Boot Actuator监控应用
- Spring Boot Admin
- Spring Boot 动态 Banner
-
SpringBoot非官方教程 | 终章:文章汇总
2017-04-22 00:08:27转载请标明出处: ... 本文出自方志朋的博客 ...springboot非官方教程,可能最接近于官方的一个教程,大多数案例都来自于官方文档,为了更好的理解,加入了个人的改造。 码云下载:https://git.oschina...转载请标明出处:
http://blog.csdn.net/forezp/article/details/70341818
本文出自方志朋的博客个人博客纯净版https://www.fangzhipeng.com/springboot/2017/06/06/springboot-all.html
跟我学Springboot开发后端管理系统
- 跟我学Springboot开发后端管理系统1:概述
- 跟我学Springboot开发后端管理系统2:Mybatis-Plus实战
- 跟我学Springboot开发后端管理系统2:Mybatis-Plus实战2
- 跟我学Springboot开发后端管理系统4:数据库连接池Druid和HikariCP
- 跟我学Springboot开发后端管理系统5:数据库读写分离
- 跟我学Springboot开发后端管理系统6:缓存框架Caffeine
- 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计
- 跟我学Springboot开发后端管理系统8:Matrxi-Web权限设计实现
- 跟我学Springboot开发后端管理系统8:AOP+logback+MDC日志输出
SpringBoot非官方教程 | 终章:文章汇总
springboot非官方教程,可能最接近于官方的一个教程,大多数案例都来自于官方文档,为了更好的理解,加入了个人的改造。
码云下载:https://git.oschina.net/forezp/SpringBootLearning
源码下载:https://github.com/forezp/SpringBootLearning,谢谢支持,记得star哦。
欢迎访问我的个人博客:https://www.fangzhipeng.com/springboot/2017/07/11/springboot-all/
入门篇
SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
配置篇
SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
数据库篇
SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql
SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA
SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql
SpringBoot非官方教程 | 第六篇:springboot整合mybatis
SpringBoot非官方教程 | 第七篇:springboot开启声明式事务
SpringBoot非官方教程 | 第八篇:springboot整合mongodb
SpringBoot非官方教程 | 第九篇: springboot整合Redis
构架文档篇
SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档
SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API
SpringBoot非官方教程 | 第十二篇:springboot集成apidoc
缓存篇
SpringBoot非官方教程 | 第十三篇:springboot集成spring cache
消息队列
SpringBoot非官方教程 | 第十四篇:在springboot中用redis实现消息队列
SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
网络相关
SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
任务调度
SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)
表单相关
SpringBoot非官方教程 | 第十九篇: 验证表单信息
SpringBoot非官方教程 | 第二十篇: 处理表单提交
其他
SpringBoot非官方教程 | 第二十一篇: springboot集成JMS
SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
SpringBoot非官方教程 | 第二十四篇: springboot整合docker
案例
SpringBoot非官方教程 | 第二十五篇: 2小时学会springboot
未完结
- 待续。。。
扫码关注有惊喜(转载本站文章请注明作者和出处 方志朋的博客)
-
【SpringBoot】一、创建第一个SpringBoot项目
2019-08-04 21:59:48创建SpringBoot项目可以通过...2、通过工具(例如:Idea)创建SpringBoot项目。本次使用开发工具:Idea创建我的第一个SpringBoot项目。 首先,打开我们的Idea开发工具 选择Create New Poject(创建一个新的项目) ...创建SpringBoot项目可以通过两种方式:
- 1、通过访问:https://start.spring.io/,SpringBoot的官方网站进行创建SpringBoot项目;
- 2、通过工具(例如:Idea)创建SpringBoot项目。本次使用IDEA创建第一个SpringBoot项目。
首先,打开我们的Idea开发工具
- 选择Create New Poject(创建一个新的项目)
- 我们使用Spring Initializr创建SpringBoot项目,SDK默认选择你安装的JDK路径,默认选择SpringBoot官网地址,点击Next
- 在这里填写你的包名和项目名,我们使用Maven Project,选择项目打包方式为:jar,Java版本为8,默认就好,点击Next
- 然后选择我们需要使用到的Maven依赖,这里我只选择了Web项目开发的依赖,当然,你也可以选择更多的依赖,例如:MySQL,jpa,lombok,还有SpringCloud的一些东西,根据自己需要来选择,点击Next
- 这里是让你填写你的项目名称和项目地址的信息,点击Finish,我们就完成了第一个SpringBoot项目的创建工作,接下来只需要等待Idea成功引入Maven依赖,项目就算创建完成
- 我们的SpringBoot项目创建完成之后的目录结构就是这个样子,.mvn,mvnw,mvnw.cmd这三个文件是可以删除的,TestApplication.java是我们这个项目的启动文件,我们在启动项目的时候,只需要Run这个文件或者Debug Run这个文件就可以了,接下来我们看看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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.test</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <name>test</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
- 我们在选择依赖的时候,选择了web的依赖,已经成功引入,另外还默认引入了测试的依赖,接下来就让我们来启动它吧
package com.test.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @RequestMapping(value = "/init") public String init(@RequestParam("name") String name) { return "Hello," + name + "!"; } }
- 在启动之前,我们在项目的启动文件上加了@RestController注解,它是@Controller和@ResponseBody的结合,写上@RestController注解,就相当于把后两者都给写上了,并写了一个地址为“init”方法,接收一个“name”参数,返回一个String类型的数据,然后我们启动项目
-
我们启动后会看到SpringBoot的字样,然后在启动信息中会看到启动在本地的8080端口,以及启动费时等信息,然后我们打开浏览器访问地址:http://localhost:8080/init?name=World
-
页面显示信息:Hello,World!,代表我们的项目启动成功,并能够成功访问!
如您在阅读中发现不足,欢迎留言!!!
-
SpringBoot从入门到精通教程
2018-08-25 04:04:35对于SpringBoot,很多人咨询了我的研究学习资料来源,除官方文档外,特例完整整理一下自己的平时参考学习其他资料,以及分享实战项目源码和代码资源,供大家参考学习 主要教程 一、我的SpringBoot系列教程(2020.3... -
springboot和springmvc的区别
2019-03-15 22:21:37面试题:你知道springboot和springmvc的区别是什么? 之前自己搭过springboot的相关项目,但是如何进行比较,从自我感觉来看就是使用springboot用起来几乎没有配置,个人搭的项目没有用到配置相关的内容。于是我就... -
springboot干货——(八)springboot引入外部xml配置文件
2018-01-21 20:44:04在使用springboot的时候一般是极少需要添加配置文件的(application.properties除外),但是在实际应用中也会存在不得不添加配置文件的情况,例如集成其他框架或者需要配置一些中间件等,在这种情况下,我们就需要引入... -
史上最全的SpringBoot学习教程!会不断更新
2020-02-07 18:00:56把写过的SpringBoot系列的文章全部整理在此,方便大家学习查看! -
SpringBoot2.X (十四): @SpringBootTest单元测试
2018-06-08 08:33:22那么先简单说一下为什么要写测试用例 : ...好了,说道这里,应该明白测试的一个重要性了,,,接下来,我们正式进入SpringBoot2.X 的 测试实践中吧。。。 1、引入相关依赖 <!--springboot程序测试依... -
Springboot构建多模块项目
2020-06-08 15:12:34首先新建一个springboot父项目 这里不选择其他的,直接next就好了,后续需要再添加。 建立完成后项目结构如下,但是这是一个父项目,做版本控制,什么都不需要,所以我们要删除如下的东西。 选中的全部... -
springboot单测之mock搭建
2020-08-29 23:14:00springboot单测之mock搭建 简述:在springboot项目中依赖了很多start组件,且组件对环境、数据库、注册中心等都有依赖,我们像mock调这种第三方接口,只让自己项目的springBena进行初始化 1、因为我们要初始化... -
springboot项目快速搭建
2019-07-03 09:06:28解决方案2.1 新建Springboot项目(1)file->new->project(2)点击next(第一个)(3)点击next(第二个)(4)点击next(第三个)2.2 springboot默认生成三个文件2.2.1. pom.xml2.2.2 application.... -
Springboot创建项目(idea版本)
2019-06-10 12:54:52由于springboot项目,不管是java工程还是web工程都可以直接以jar方式运行,所以推荐创建jar工程,这里创建jar工程项目为例。 二:两种方式创建springboot项目 1.第一种方式 手动在idea中new一个新的项目。选择... -
SpringBoot学习历程
2018-03-11 13:09:33新年新气象,更新了一下本人所有写的关于SpringBoot的文章目录,感谢大家长期以来的支持,在接下来的日子还会不定期的进行更新。 入门 使用IntelliJ Idea新建SpringBoot项目 SpringBoot启动banner更改 ... -
SpringBoot完全详细教程
2018-09-08 18:00:32Springboot教程。SpringBoot超详细教程。市面上讲解SpringBoot的书籍很多,但是大多篇幅较大,对于初学者快速入门、掌握实战技巧收效甚微。故将实际工作中的实战经验汇成此册,提纲挈领,帮助初学者掌握实操技能,... -
基于SpringBoot的作业提交系统
2020-05-11 17:59:39(1)后端技术:SpringBoot、Spring Data JPA (2)前端技术:Layui、html ,ajax,jq 2.实现的功能 (1)管理员: 对课程、教师、学生数据进行增删改查 (2)教师 a.布置作业 b.查看作业并批改作业 c.实现查重’ ... -
SpringBoot是什么?干嘛用的?(新手入门篇)
2020-10-31 17:30:46SpringBoot是干哈的 介绍:springboot是由Pivotal团队提供的全新框架。spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着业务的增加,使用xml配置bean的方式也显得相当... -
SpringBoot连接使用PostgreSql数据库
2018-10-23 20:47:33在这里我使用SpringBoot配置Mybaits连接到PostgreSql数据库的。我的源码也会提供给大家(此文末尾),效果如下 数据库: 运行效果: 2、安装软件及依赖包 完整搭建SpringBoot及依赖包:... -
SpringBoot思维导图(SpringBoot基础部分汇总)
2020-07-02 10:07:08SpringBoot第一谈(第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp) SpringBoot第二谈SpringBoot的web开发(集成MyBtis、SpringBoot 下的SpringMVC、SpringBoot开发RESTFul风格、集成Redis)... -
SpringBoot配置-读取 .yml配置文件
2018-03-13 15:12:56之前会使用springboot,但基础知识掌握的不扎实,今天看了关于配置文件,下边稍作整理一下:大家都知道springboot的优点是配置文件少,相比springMVC少了很多的配置文件,下面就介绍一下springboot中的配置文件,... -
SpringBoot实现原理
2018-07-20 13:11:29一、什么是SpringBoot? SpringBoot是一个快速开发框架,快速的将一些常用的第三方依赖整合(原理:通过Maven子父工程的方式),简化XML配置,全部采用注解形式,内置Http服务器(Jetty和Tomcat),最终以java应用... -
SpringBoot 项目部署到服务器上(Jar包)
2019-03-22 10:13:34Springboot 和普通web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢? 通常来说,Springboot 部署会采用两种方式:全部打包成一个jar,或者打包成一个war。现在讲一下打包成 jar 部署。 2. ... -
SpringBoot 错误页面跳转
2020-02-04 17:19:20SpringBoot实现MVC 404、500等错误时跳转自定义页面 一、新增配置类 package com.study.demo.config; import org.springframework.boot.web.server.ErrorPage; import org.springframework.boot.web.server.... -
SpringBoot项目的云服务器部署
2017-06-10 22:03:43springboot配置相当简单,人人皆知。怎么把springboot工程部署到云服务器上呢?可能有人会说,博主你前篇不是讲了java工程的云部署把;但是我想澄清一点的是,我前篇的工程都是ssm框架搭建的,而springboot可是自带... -
springboot对数据库密码加密
2018-08-31 16:39:17开发的同学们都知道,例如项目依赖的信息,数据库信息一般是保存在配置文件中,而且都是明文,因此需要进行加密处理,今天在这里介绍下jasypt集成springboot加密的配置。 首先,这些都是建立在你的springboot项目是... -
【Springboot系列】Springboot入门到项目实战
2020-04-12 18:06:51写在前面: 之前陆陆续续写了一下Springboot相关的博客,写的也是比较零散。现在把之前写的Springboot相关的博客全部整理在这里,方便查看。 ... -
SpringBoot实战教程:SpringBoot入门及前后端分离项目开发
2019-08-02 12:53:21Spring Boot 介绍、前后端分离、API 规范等内容旨在让读者更加熟悉 SpringBoot 及企业开发中需要注意的事项并具有使用 SpringBoot 技术进行基本功能开发的能力;这最后的项目实战为课程的主要部分,我会带着大家实际... -
SpringBoot自动装配原理分析
2018-06-30 15:17:10先看看SpringBoot的主配置类: 里面有一个main方法运行了一个run()方法,在run方法中必须要传入一个被@SpringBootApplication注解的类。 @SpringBootApplication SpringBoot应用标注在某个类上说明这个类是... -
springboot教程
2019-05-12 06:24:41快速构建springboot项目 springboot配置文件 springboot加载bean springboot日志 springboot连接mysql数据库 springboot整合mybatis springboot事务 springboot整合redis springboot缓存 springboot RestTemplate ... -
eclipse下载springboot插件到创建springboot项目
2017-07-04 10:25:12一、eclipse在线下载springboot插件 1、help->eclipse marketplace->popular-选择spring tool suite(STS)进行下载 2、下载好之后,重启eclipse,测试springboot插件是否已下载好,步骤:File->new->other 3...
-
Multifunctional integration on optical fiber tips: challenges and opportunities
-
Instantaneous frequency analysis of broadband LFM signals by photonics-assisted equivalent frequency sampling
-
GAMES101图形学P5笔记(三角形的光栅化)
-
【数据分析-随到随学】数据分析建模和预测
-
jquery中怎么获取数组的长度
-
掺Er3+晶体近3 μm中红外激光研究进展
-
Excel高级图表技巧
-
转行做IT-第9章 常用类-Scanner、Random等
-
国产工业级准单模光纤振荡器实现5.16 kW激光输出
-
2021最新Kubernetes(k8s)集群实战精讲
-
转行做IT-第8章 类与对象、封装、构造方法
-
云计算基础-Linux系统管理员
-
【Java程序员】往期面试高频原型题汇总 - 三大特征、七大原则
-
Effect of purification, dehydration, and coagulation processes on the optical parameters of biological tissues
-
个人理财第十二课-掌握定投技巧,学会智能定投
-
flexbox card的小例子
-
python装饰器抽丝拨茧
-
2010-2020年暨南大学812有机化学A考研真题
-
Day23(稀疏数组,什么是面向对象)
-
【Codeforces 1475】Codeforces Round #697 (Div. 3) | 全题解