1:如何在数据库保存照片

将照片上传到本地后,数据库只需要保存照片名字即可(此名字是本地保存的文件的名字,通过UUID去重的名字,并不是展示照片时的照片名)。
数据表:
文件保存在本地:

2:控制层方法

**PhotoController:**SpringBoot的文件上传比较方便不需要引入其它依赖。通过SpringInitializr选择web,thymeleaf等场景即可。

@Controller
public class PhotosController {@Autowiredprivate PhotosService photosService;//负责跳转到主页,展示照片@RequestMapping("/")public String index(Model model){List<Photo> photos = photosService.list();model.addAttribute("photos",photos);return "index";}//负责跳转到添加照片页@RequestMapping("/up")public String up(){return "up";}//负责保存照片到本地@PostMapping("/upload")public String upLoad(@RequestParam("photoName")String name, @RequestPart("photo") MultipartFile photo) throws IOException {String fileName = null;if(!photo.isEmpty()){//获取源照片名String originalFilename = photo.getOriginalFilename();//获取照片后缀名String suffixName=originalFilename.substring(originalFilename.lastIndexOf('.'));//使用UUIDfileName= UUID.randomUUID().toString()+suffixName;//保存照片到磁盘photo.transferTo(new File("选择自己保存的路径(注意后面的//不要缺少)//"+fileName));}//创建photo对象Photo p=new Photo(null,name,fileName);//保存到数据库photosService.save(p);//重定向到照片展示页面return "redirect:/";}
}

3:前端文件上传表单

文件上传需要post, enctype="multipart/form-data"支持。

 <form  th:action="@{/upload}" method="post" enctype="multipart/form-data"><div>照片名:<input type="text" name="photoName"></div><div>照片:<input type="file" name="photo"></div><button type="submit">提交</button></form>

4:前端如何获取本地照片

创建并配置application.yaml: 通过spring.web.resources.static-locations配置本地访问路径

spring:servlet:multipart:max-file-size:  10MB   max-request-size:  100MB  web:resources:  static-locations:  file:自己选择保存的路径(注意后面的/不要缺少)/

前端展示照片: 这里使用thymeleaf的视图解析器,通过 <img th:src="@{/{path}(path=${p.path})}" width="20%" height="20%">访问到本地照片。
实际访问路径:http://localhost:8080/文件名

<table border="1px" cellpadding="0" cellspacing="0"><tr><th>ID</th><th>Name</th><th>Photo</th></tr><tr th:each="p:${photos}"><td th:text="${p.id}"></td><td th:text="${p.name}"></td><td><img th:src="@{/{path}(path=${p.path})}" width="20%" height="20%"></td></tr></table>

5:效果

之前ssm框架整合,也尝试了照片上传加回显,不过之前未将照片保存在本地,而是保存在服务器上,只要清理target照片就会丢失,这次保存到本次,比上次稳定点。

基于SpringBoot-上传照片保存到本地,且回显照片相关推荐

  1. springboot 上传文件保存在本地磁盘

    1.修改application.properties配置文件,设置保存磁盘地址(方便以后修改) upload.path = /Users/myname/Documents/upload/ 地址自定义即 ...

  2. java 图片上传 并保存服务器本地 后台 代码

    java 图片上传后台代码,把图片保存到服务器本地盘,并且按照一天一个文件夹分开存放,易于管理,不说了直接上代码: @Controller @RequestMapping("/oa" ...

  3. springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显

    springboot文件上传,单文件上传和多文件上传 项目结构及pom.xml 创建文件表单页面 编写javabean 编写controller映射 MultipartFile类 @RequestPa ...

  4. SpringBoot上传文件到 后端服务器 或 云服务器(七牛云、阿里云、腾讯云等等都是一样的操作步骤)

    文章目录 一.新建SpringBoot项目 1.pom.xml 2.application.yml 3.配置Swagger3 4.统一返回类Result 5.统一异常响应ErrorCode 二.上传文 ...

  5. 上传图片,Not allowed to load local resource,springboot上传

    最近朋友找我,帮她做一个招聘的网站的demo,本来是不想做的,谁让是一个美女呢,没办法, 程序猿嘛,看见美女就.嘻嘻.哦!扯远了,话不多说直接就上. 1.所需要pom依赖有: <dependen ...

  6. springboot上传下载文件(4)--上传下载工具类(已封装)

    因为在做毕设,发现之前的搭建ftp文件服务器,通过ftp协议无法操作虚拟机临时文件,又因为ftp文件服务器搭建的比较麻烦:而 hadoop的HDFS虽然可以实现,但我这里用不到那么复杂的:所以我封装了 ...

  7. SpringBoot上传下载文件及在线预览

    SpringBoot上传下载文件及在线预览 今天大概就说说如何使用SpringBoot进行上传和下载以及在线预览文件 本篇主要介绍上传下载的功能,对于界面就简单一点,大致如下: 一.老规矩还是先看看小 ...

  8. Springboot上传视频到阿里云(视频点播)和aliyun-java-sdk-vod依赖报红问题

    一.pom.xm中导入依赖 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-ja ...

  9. springboot上传文件到阿里云

    springboot上传文件到OSS 前提声明,文章借鉴了https://blog.csdn.net/wonder_dog/article/details/81152307#commentsedit博 ...

  10. Java上传文件保存到指定路径

    Java上传文件保存到指定路径 上代码 @PostMapping("/file-upload")@ApiOperation(value = "上传swagger.json ...

最新文章

  1. Linux多线程的同步------读写锁
  2. MATLAB基础操作--命令窗口
  3. 51nod 1179 最大的最大公约数 (打表计数法)
  4. mysql 查询设置调优_MySQl 查询性能优化相关
  5. linux ubantu扩展空间,ubuntu 扩展存储空间
  6. eclipse调试的时候查看变量出现com.sun.jdi.InvocationException occurred invoking method.
  7. Bootstrap 模态框插件Modal 的事件
  8. Linux 查看磁盘容量、查找大文件、查找大目录
  9. YUM更换源(1)--yum找不到安装包
  10. 动态规划实战6 leetcode-139. Word Break
  11. wget 网页爬虫,网页抓取工具
  12. KinhDown(度盘PC下载器)
  13. 2019年的读书印记
  14. 吉他调音软件 android,吉他调音器专业版
  15. 8月20日 网工学习 二层交换机功能 MAC地址 交换机的寻址 总结二层交换机,根据源MAC地址进行MAC地址表学习,根据目的MAC地址转发
  16. CC00388.CloudKubernetes——|KuberNetesCI/CD.V26|——|Jenkins.v06|自动构建Java应用.v06|报错处理|
  17. 【uniapp】如何设置单个页面背景颜色
  18. 解决VS Community“无法刷新此账户的凭证”和“无法添加此账户”的问题
  19. 基层管理者项目管理二三事
  20. 如何把自媒体平台文章同步到WordPress等网站

热门文章

  1. windows系统中误删文件恢复
  2. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
  3. 曲苑杂坛--查看CPU配置
  4. Java Web开发环境配置
  5. AutoCAD2020中文版软件下载和安装教程|兼容WIN10
  6. 用【花生壳】穿透内网主机运用dai搭建校园实现访问外网访问只有学校内网的教务系统
  7. Java项目实战:实现淡旺季飞机票打折
  8. 【python初学者日记】输入年份:判断是否闰年:闰年:yyyy是闰年,这年有366天;yyyy是平年,这年有365天
  9. Solidworks装配体教程:善用连接重组
  10. 计算机网络存储设备有哪些,存储设备有哪些