目录

基本概念

代码与实例

源码打包下载


基本概念

这个是基因Github的一个项目改的,因为页面关闭了,在此找不到了,不能把连接发上来。

这里使用的是FreeMarker。

为了避免重名,使用了UUID生成随机。

找图片文件主要是使用ResourceLoader。

代码与实例

程序运行截图如下:

点击选择文件,然后提交:

看看文件夹:

关键源码如下:

application.properties

### FreeMarker 配置
spring.freemarker.allow-request-override=false
#Enable template caching.启用模板缓存。
spring.freemarker.cache=false
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
#设置面板后缀
spring.freemarker.suffix=.ftl# 设置单个文件最大内存
multipart.maxFileSize=50Mb
# 设置所有文件最大内存
multipart.maxRequestSize=50Mb
# 自定义文件上传路径
web.upload-path=F:/SpringTest/

TestController.java

package com.example.demo.controller;import com.example.demo.util.FileUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;import java.util.Map;@Controller
public class TestController {private final ResourceLoader resourceLoader;public TestController(ResourceLoader resourceLoader) {this.resourceLoader = resourceLoader;}@Value("${web.upload-path}")private String path;@RequestMapping("test")private String toUpload(){return "test";}//上传文件@RequestMapping("fileUpload")public String upload(@RequestParam("fileName") MultipartFile file, Map<String, Object> map){String localPath = "F:/SpringTest";String msg = "";StringBuffer newName = new StringBuffer();if(FileUtils.upload(file, localPath, file.getOriginalFilename(), newName)){msg = "上传成功";}else{msg = "上传失败";}newName.toString();map.put("msg", msg);//map.put("fileName", file.getOriginalFilename());map.put("fileName",  newName.toString());return "forward:/test";}//显示单张图片@RequestMapping("show")public ResponseEntity showPhotos(String fileName){if(fileName == null){return ResponseEntity.notFound().build();}try{return ResponseEntity.ok(resourceLoader.getResource("file:" + path + fileName));}catch (Exception e){return ResponseEntity.notFound().build();}}
}

源码打包下载

地址如下:

https://github.com/fengfanchen/Java/tree/master/loadPic

Java工作笔记-Spring Boot上传图片并显示相关推荐

  1. Java工作笔记-Spring Boot + Jdbc + dm7Driver访问数据库(Spring Boot连接达梦数据库)

    目录 基本概念 代码与实例 基本概念 Jdbc有4种方式访问数据库,下面给出达梦访问数据库的方式. 安装好达梦库后,就会有驱动,在此不再说明怎么去安装! 本次使用Java7的环境,所以使用的Jar包为 ...

  2. Java工作笔记-Spring boot中配置文件加密(Jasypt的使用)

    Jasypt Spring Boot提供了Spring Boot应用程序配置文件的加密.有下面3种方式在项目中集成jasypt-spring-boot: 1. 在classpath中添加jasypt- ...

  3. Java工作笔记-Spring Boot封装Jedis实例

    目录 基本概念 代码与实例 源码下载 基本概念 SpringBoot提供了一套Redis接口,但个人感觉没Jedis方便(可能是因为本人比较菜的原因吧) 在此封装了相爱Jedis,在部署的时候,同样可 ...

  4. Java工作笔记-Spring Boot中使用Mybatis操作达梦数据库

    这里以达梦数据库为例,使用MyBatis对数据库进行增删改查 这里先给出截图 此处为了简单,直接在Controller里面调用dao中数据: 关键代码如下: application.propertie ...

  5. 限量!“Java成长笔记”Spring Boot/Sentinel/Nacos高并发

    前言 本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果. 本来想将文件上传到github上 ...

  6. 限量!“Java 成长笔记” Spring Boot/Sentinel/Nacos 高并发

    前言 本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果. 本来想将文件上传到github上 ...

  7. 第64节:Java中的Spring Boot 2.0简介笔记

    Java中的Spring Boot 2.0简介笔记 spring boot简介 依赖java8的运行环境 多模块项目 打包和运行 spring boot是由spring framework构建的,sp ...

  8. java byte 图片浏览器直接显示_以Spring Boot的方式显示图片或下载文件到浏览器的示例代码...

    以Java web的方式显示图片到浏览器以Java web的方式下载服务器文件到浏览器 以Spring Boot的方式显示图片或下载文件到浏览器 请求例子:http://localhost:8080/ ...

  9. sb版 java后端(spring boot)应用Conflux Java SDK尝试交互Conflux实录

    sb版 java后端(spring boot)应用Conflux-java-尝试链接Conflux实录 2021/5/3 更新: 请看最新博客!!!内容更详实且包含本文所有内容(不删此篇纯粹是因为阅读 ...

最新文章

  1. MySQL中查询的看到的日期和Java程序查询出来的日期差了几个小时
  2. 进击的UI---------------UIPickerView
  3. 亚马逊如何变成 SOA(面向服务的架构)?
  4. 程序员专属精美简历合集—第二弹
  5. BCGControlBar入门使用手册
  6. 利用Socketserver实现简单的文件上传
  7. 20190808估值方法
  8. 【PetShop 4.0学习】1.技术特点
  9. 远程升级stm32程序_艾拉比智能成为意法半导体STM32战略合作伙伴
  10. ArcGIS for Android 100.3.0(1):开发环境配置
  11. java svn 创建分支_Eclipse下svn的创建分支/合并/切换使用
  12. MTK 6589 native exif generation
  13. 目前互联网的技术发展现状和趋势如何?
  14. 【论文翻译_自监督知识蒸馏】Self-supervised Label Augmentation via Input Transformations
  15. nao机器人导入自己写的python程序_python程序控制NAO机器人行走
  16. Oracle突然无法登录,ORA-12514:TNS
  17. Django simpleui实战web平台开发
  18. 最炫表白网站html5源码_七夕程序员的十款表白源码
  19. 无代码表格数据库——一个企业数字化新物种
  20. item_search_video - 根据关键词取抖音视频列表API

热门文章

  1. Excel中如何在打印时自动给每行加上标题
  2. 程序员在学习编程的时候,想记住所有代码是不可能的!为什么?
  3. 这又何止呢的openeim002
  4. 再讨论下古老的include
  5. 你真的适合做前端吗?自学入行的那些坑
  6. 初中学历做开发,3年在北京买了房,超过了99%的程序员!
  7. java j2se1.5_Java教程 用J2SE1.5建立多任务的Java应用程序
  8. struts国际化java_java框架篇---Struts2 本地化/国际化(i18n)
  9. 2.4g和5g要不要合并_请问千兆路由器,2.4g与5g是双频合一还是分开,该选择哪个?...
  10. Circulation:吃鸡蛋量多,死亡风险增加?