开发|Springboot简单实现文件上传
1 前言
下面是一个简单的在springboot项目里的实现文件上传简单例子。
2 创建一个Config
首先在config文件夹下创建一个MyWebConfig的配置类,用于配置资源映射路径。
图 2.1 配置类
然后编写这个类,首先就是注解@Configuration不要忘记了,否则配置不会生效;
需要实现一个WebMvcConfigurer的类,如下图2.1;
接着下面的方法里配置你想要的路径,
addResourceHandler:访问映射路径,
addResourceLocations:资源绝对路径。
图 2.1 配置类
3 Controller层
再是在controller层里进行接口以及操作的编写:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#hide").click(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
});
</script>
</head>
<body>
<p>如果你点击“隐藏” 按钮,我将会消失。</p>
<button id="hide">隐藏</button>
<button id="show">显示</button>
</body>
</html>
首先就是也不要忘记注解@Controller,然后是Get接口,进入后面展示使用的页面,然后是Post接口,提交选择的图片等文件。(String解释:fileName:文件名、并且在后面由UUID和后缀名组成了新的唯一辨识文件名;suffixName:后缀名;filePath:上传文件后的路径)
4 页面
最后就是页面的内容,这里是使用了thymeleaf进行整合,也就是图片对应model.addAttribute的地方,同时表单中的enctype="multipart/form-data"的意思,是设置表单的MIME编码格式。
默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
只有使用了multipart/form-data,才能完整的传递文件数据。
图 4.1 页面代码
图 4.2 页面效果
5 扩展提示
在使用时发现了一个问题,就是上传超过1M的图片或文件时会报错。
于是,需要设置一下:在application.properties 文件里加入如下配置:
#设置单个文件大小
spring.servlet.multipart.max-file-size= 100MB
#设置单次请求文件的总大小
spring.servlet.multipart.max-request-size= 100MB
这样就可以按自己的要求进行设置上传大小限制了。
END
主 编 | 张祯悦
责 编 | yellow
- dedecms批量修改文章为待审核稿件怎么操作
- 群体智能算法-黏菌寻找食物最优路线行为模拟
- finecms设置伪静态后分享到微信不能访问怎么处理
- composer安装其实可以很简单 两行命令就解决了
- 章神的私房菜之数据预处理
- 如何调用finecms指定栏目的描述关键词
- finecms栏目文章页seo设置
- Logistic回归实战篇之预测病马死亡率(一)
- DedeCMS后台500错误一种原因是不支持PHP5.3、5.4及以上版本
- finecms指定从第几篇文章开始调用5条记录,并调用文章所在栏目
- finecms如何调用多个栏目的子栏目
- 从傅立叶变换到Gabor滤波器
- 三个小时学会wordpress模板制作
- The each() function is deprecated报错的解决方法
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- php使用redis的有序集合zset实现延迟队列应用示例
- PHP使用openssl扩展实现加解密方法示例
- php使用redis的几种常见操作方式和用法示例
- 使用memory_profiler监测python代码运行时内存消耗方法
- php 多进程编程父进程的阻塞与非阻塞实例分析
- php数组指针函数功能及用法示例
- thinkphp5框架路由原理与用法详解
- ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
- php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
- 对python 命令的-u参数详解
- ThinkPHP5.1+Ajax实现的无刷新分页功能示例
- Python推导式简单示例【列表推导式、字典推导式与集合推导式】
- Python 从相对路径下import的方法
- Python随机生成身份证号码及校验功能
- 对python的bytes类型数据split分割切片方法