【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能
SpringBoot 实现文件上传,图片上传并显示功能
我先看一下《颈椎病康复指南》再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用 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 {@Overridepublic 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
推荐阅读:Spring Cloud Alibaba
- 【Spring Cloud Alibaba】微服务基础知识篇
- 【Spring Cloud Alibaba】Nacos 分布式配置
- 【Spring Cloud Alibaba】Nacos 服务注册与发现
- 【Spring Cloud Alibaba】Dubbo 分布式服务调用
- 【Spring Cloud Alibaba】Sentinel 服务熔断和限流
- 【Spring Cloud Alibaba】Gateway 分布式网关
- 【Spring Cloud Alibaba】Boot Admin 端点监控
- 【Spring Cloud Alibaba】Ribbon 负载均衡器
- 【Spring Cloud Alibaba】Oauth2 授权认证服务
- 【Spring Cloud Alibaba】Mybatis Plus 持久层
- 【Spring Cloud Alibaba】Mybatis Plus 代码生成器
- 【Spring Cloud Alibaba】Seata 分布式事务
- 【Spring Cloud Alibaba】Sleuth + Zipkin 链路追踪
- 【Spring Cloud Alibaba】Swagger 聚合接口文档
微信公众号
【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能相关推荐
- 文件上传(图片上传) 大小限制的配置 及注意点
文件上传(图片上传) 设置 大小 注意点 //检查文件是否为空if (multipartFile.isEmpty()){return "文件为空";}//检查文件大小 209715 ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...
- 淘宝店铺上新图片上传获取请求方法
淘宝上新图片上传获取请求方法如下: 1.请求方法:POST [支持高并发同时请求] 点击获取请求key和secret Headers: 参数名称 参数值 是否必须 示例 备注 Content-Type ...
- 超详细的springBoot学习教程,springboot学习看这篇就够了
springBoot学习 https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/index.html (官方文档) ...
- moba上传文件到服务器,图片上传到远程服务器上的方法
图片上传到远程服务器上的方法 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows ...
- 【Springboot学习】SpringBoot集成Shiro前后端分离使用redis做缓存【个人博客搭建】
shiro-redis 目录 shiro-redis 下载 shiro-core/jedis 版本对比图 使用前 如何配置? 设置文件 Redis 独立 Redis哨兵 Redis 集群 Spring ...
- html input type=file 文件上传; 图片上传; 图片闪烁
(1)input file 对话框和 获取选中文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- PPTPDF文件转换成图片上传OSS
PPTPDFIMAGE 先把文件上传至本地,再去读取文件转变上传. <dependency><groupId>org.apache.pdfbox</groupId> ...
- gtp java 文件传输_5_1_图片上传
图片上传 一 需求 1 图片上传到本地: 2 图片上传到七牛云. 效果图: 二 具体代码实现 1 ToutiaoUtil.java: 用来判断上传的文件名是否合格: packagecom.nowcod ...
- h5 ajax php 图片上传,图片上传生成海报H5技术详解
我想很多经常做H5同学都会遇到过让用户上传照片的这种需求,那我这里给大家分享一些我常用的一些方法~废话不多时候,下面可以写一些干货,如果有更好的方法欢迎留言讨论! 首先,需要准备一些需要用到的东西. ...
最新文章
- 32位md5解密_用户名与密码前后加密、后台解密实现方案
- 扯淡设计模式之装饰者模式
- 编译cegcc 0.59.1
- 模拟银行取钱 (多线程操作的好处)
- MongoDB常用命令示例
- python环境变量的配置 alias_vim-python环境配置
- matlab数字仿真实验,DVR+备用电源自动投入的MATLAB数字仿真实验仿真实验
- oracle 静默 建库,静默安装Oracle 11gR2软件并且手动建库
- mysql的sql优化工具下载_MySQL SQL查询优化工具EverSQL
- 洛谷—— P2658 汽车拉力比赛
- 【北大知识图谱】知识图谱的关键技术及其智能应用
- [原创]经典软件测试技术分类
- 蓝桥杯C语言程序设计真题
- 用VS2019编译librdkafka库
- Vista 如何关闭UAC(用户帐户控制)
- python 正则表达式 前瞻_Python的正则表达式
- 游侠客php,华东推荐徒步线路之轻户外经典线路——杭宣古道
- 斯坦福大学公开课:乔布斯演讲
- 屏蔽不讲robots规则的国外垃圾蜘蛛
- 【RDMA】基于RoCE的应用程序的MTU注意事项|探测网络中的MTU设置