前端页面
input的file类型可以将上传文件的绝对路径返回给后台。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script><link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"><title>Title</title>
</head>
<body>
<div class="container"><body><div class="col-md-12"><form action="/upload/upload" method="post" enctype="multipart/form-data"><input type="file" name="file" accept="image/*"><br><input type="submit" value="上传" class="btn btn-success"></form>[[${filename}]]<br><img th:src="@{${filename}}" alt="图片"></div></body>
</div>
</body>
</html>

application.properties配置文件

file.upload.path=D://images/
file.upload.path.relative=/images/**
spring.thymeleaf.cache=false

MyWebAppConfigurer配置类
主要配置资源映射,在服务器输入路径时寻找对应映射文件。否则直接放在tomcat服务器中,由于springboot每次启动都会重启一个新的tomcat服务器,文件会丢失,所以放在其他路径,而通过资源映射则可以访问tomcat服务器以外的文件。

/*** 资源映射路径*/
@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {/**上传地址*/@Value("${file.upload.path}")private String filePath;/**显示相对地址*/@Value("${file.upload.path.relative}")private String fileRelativePath;@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(fileRelativePath).addResourceLocations("file:/" + filePath);}
}

Controller,
这里注意一个问题,getOriginalFilename在ie浏览器中会获取全部路径名从而造成io异常,其他浏览器正常,解决的话加个浏览器判断就好。

@Controller
@RequestMapping("upload")
public class UploadController {/**上传地址*/@Value("${file.upload.path}")private String filePath;@GetMapping("toUpload")public String toUpload(){return "upload";}@RequestMapping("upload")public String upload(@RequestParam("file") MultipartFile file, Model model) {// 获取上传文件名String filename = file.getOriginalFilename();// 定义上传文件保存路径String path = filePath+"Photo/";// 新建文件File filepath = new File(path, filename);// 判断路径是否存在,如果不存在就创建一个if (!filepath.getParentFile().exists()) {filepath.getParentFile().mkdirs();}try {// 写入文件file.transferTo(new File(path + File.separator + filename));} catch (IOException e) {e.printStackTrace();}// 将src路径发送至html页面model.addAttribute("filename", "/images/Photo/"+filename);return "upload";}
}

测试

springboot实现简单的文件上传与回显相关推荐

  1. 【SpringBoot】简单的文件上传和文件下载以及图片回显

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  2. element UI el-upload组件实现视频文件上传视频回显

    项目中需要提供一个视频介绍,使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传API并返回URL, 百度找了一番后最终实现了. HTML <el ...

  3. Java使用SpringBoot实现简单的文件上传(上传文件到本地)

    实现代码: (此处代码写在了Controller层 建议写在Service层,Controller只做调用) /*使用SpringBoot实现简单文件上传(上传至本地)*/@RequestMappin ...

  4. SpringBoot 2.0 多图片上传加回显

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文来源:http://r6f.cn/crEY 这两天公司 ...

  5. vue2 + elementui el-upload文件上传后回显及重新提交思路

    回显: :file-list="fileList" 可用于预览图片列表,数组内的对象格式为{name: '', url:"'}. 文件上传后,需让后端返回文件标识和服务器 ...

  6. bootstrap fileinput 文件上传和回显

    官网下载文件http://plugins.krajee.com/file-input/demo bootstrap fileinput 是基于bootstrap基础上的上传插件,so必要的bootst ...

  7. Spring Boot文件上传及回显(单/多文件)

    一.单文件上传 1.前端页面 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  8. Springboot实现简单的文件上传和下载功能

    一.第一步, 第一步依然是创建数据库,我简单设计了三个字段(file_id,file_name,create_time) CREATE TABLE `txtfile` (`file_id` int N ...

  9. themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...

    实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...

最新文章

  1. 高德地图markevents_GitHub - mingxuWang/Map: 高德地图API二次封装
  2. centos7 ssr一键脚本_RHEL7(Centos7)下使用shell脚本一键部署服务
  3. android view强制重绘_android view 相关方法 layout draw 布局 重绘 | 学步园
  4. python编译成exe有意义吗_python工程编译成EXE
  5. JS document.execCommand实现复制功能
  6. poj 3748 位操作
  7. android toolbar源码解析,深入理解Android 5.0中的Toolbar
  8. 面向对象与原型(二)
  9. JavaScript把客户端时间转换为北京时间
  10. 内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]...
  11. mysql 5.6 二进制安装包_centos6上mysql5.6二进制包安装
  12. hdu 4155 回溯
  13. 数字图像处理(8):实现FFT快速算法(C语言)
  14. 使用Glide切换图片时闪动
  15. 蓝桥杯 2015 javaB组 校赛
  16. 解决某APP游戏内购
  17. Xavier/Tx2镜像拷贝及系统克隆
  18. 祝愿天下所有的有情人都终成眷属
  19. 太绝了!大佬总结的《PyCharm中文指南》开放下载
  20. 将SSM框架项目部署到服务器(阿里云)

热门文章

  1. TCP/IP总结(4)TCP 概述
  2. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式
  3. 认知理论与技术(hash函数,SHA,MD
  4. 结构体对齐,#pragma pack
  5. 看完就能知道渗透测试的技术结构
  6. 006 kkrunchy_Ryd之类FSG压缩壳
  7. PE学习(六)第六章 栈与重定位表 实例栈溢出、模拟加载器加载DLL、遍历重定位表
  8. Python实现全民K歌歌曲下载
  9. 1065 A+B and C (64bit) (20 分)【难度: 简单 / 思维 高精度】
  10. 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)