SpringBoot 文件上传、下载、设置大小
本文使用SpringBoot的版本为2.0.3.RELEASE
1.上传单个文件
①html对应的提交表单
<form action="uploadFile" method="post" enctype="multipart/form-data">
<p>选择文件: <input type="file" name="fileName"/></p>
<p><input type="submit" value="提交"/></p>
</form>
②Boot中的处理代码。这里要注意
@RequestMapping("/uploadFile") 对应 action="uploadFile"
@RequestParam("fileName") 对应 name="fileName"
@RequestMapping("/uploadFile")
@ResponseBody
public String uploadFile(@RequestParam("fileName") MultipartFile file) {
//判断文件是否为空
if (file.isEmpty()) {
return "-1";
}
String fileName = file.getOriginalFilename();
//加个时间戳,尽量避免文件名称重复
String path = "D:/" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + fileName;
File dest = new File(path);
//判断文件是否已经存在
if (dest.exists()) {
return "-2";
}
//判断文件父目录是否存在
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdir();
}
try {
file.transferTo(dest); //保存文件
} catch (IOException e) {
return "-3";
}
return "0";
}
2.上传多个文件
①html对应的提交表单
<form action="uploadMultifile" method="post" enctype="multipart/form-data" >
<p>选择文件1: <input type="file" name="fileName"/></p>
<p>选择文件2: <input type="file" name="fileName"/></p>
<p>选择文件3: <input type="file" name="fileName"/></p>
<p><input type="submit" value="提交"/></p>
</form>
②Boot中的处理代码。
@RequestMapping("/uploadMultifile")
@ResponseBody
public String keywordSubmitFile(@RequestParam("fileName") List<MultipartFile> files) {
for (MultipartFile file : files) {
//这里简单输出文件名称
System.out.println(file.getOriginalFilename());
}
return "0";
}
3.下载文件
@RequestMapping("/downloadFile")
@ResponseBody
public String downloadFile(HttpServletResponse response, @RequestParam("fileName") String filePathName) {
File file = new File(filePathName);
if (!file.exists()) {
return "-1";
}
response.reset();
response.setHeader("Content-Disposition", "attachment;fileName=" + filePathName);
try {
InputStream inStream = new FileInputStream(filePathName);
OutputStream os = response.getOutputStream();
byte[] buff = new byte[1024];
int len = -1;
while ((len = inStream.read(buff)) > 0) {
os.write(buff, 0, len);
}
os.flush();
os.close();
inStream.close();
} catch (Exception e) {
e.printStackTrace();
return "-2";
}
return "0";
}
4.设置上传下载文件大小
①根据不同版本,对应的设置值不一样
Spring Boot 1.3.x and earlier
multipart.maxFileSizemultipart.maxRequestSize
Spring Boot 1.4.x and 1.5.x
spring.http.multipart.maxFileSizespring.http.multipart.maxRequestSize
Spring Boot 2.x
spring.servlet.multipart.maxFileSizespring.servlet.multipart.maxRequestSize
②比如在2.x的版本,则在项目的application.properties文件中设置30MB大小
spring.servlet.multipart.maxFileSize=30MB
spring.servlet.multipart.maxRequestSize=30MB
如果不限制大小,则设置为-1即可
spring.servlet.multipart.maxFileSize=-1
spring.servlet.multipart.maxRequestSize=-1
参考:
《I am trying to set maxFileSize but it is not honored》
以上。
SpringBoot 文件上传、下载、设置大小的更多相关文章
- springboot文件上传下载简单使用
springboot的文件上传比较简单 一.使用默认的Resolver:StandardServletMultipartResolver controller package com.mydemo.w ...
- SpringBoot文件上传下载
项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载. 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如 ...
- springboot文件上传下载,转载的
Spring Boot入门——文件上传与下载 原文来自:https://www.cnblogs.com/studyDetail/articles/7003253.html 1.在pom.xml文件中添 ...
- springboot 文件上传下载
关键点: 1,使用 POST 请求2,consumes=MediaType.MULTIPART_FROM_DATA_VALUE3,@RequestParm 里面的字符串和前端 input 控件的 na ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
- Spring Boot2(十四):单文件上传/下载,文件批量上传
文件上传和下载在项目中经常用到,这里主要学习SpringBoot完成单个文件上传/下载,批量文件上传的场景应用.结合mysql数据库.jpa数据层操作.thymeleaf页面模板. 一.准备 添加ma ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
- Android okHttp网络请求之文件上传下载
前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...
- 【FTP】FTP文件上传下载-支持断点续传
Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...
随机推荐
- 通过经纬度获取所属城市信息-php
测试经纬度信息,37.863036,113.598909.通过地图查询,所在城市为:阳泉. <?php class test{ public static $test_key = 'dfgfdg ...
- MySql概念(二)
一.Sql规范? sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 在使用它时,只需要发出“做什么 ...
- python识别图片生成字符模式
此python文件来自D7哥, 放在这里备份. 用法 python3 PIL\&argparse.py 1.jpg -o test.txt --width 300 --height 300 p ...
- 1.多表查询 => 转化为一张联合大表 2.可视化工具 3.pymysql模块
多表数据 create table dep( id int primary key auto_increment, name varchar(16), work varchar(16) ); crea ...
- day28 网络编程
网络编程 什么是网络编程? 编写基于网络的应用程序的过程称之为网络编程 一.CS构架 C/S构架 服务器和客户端之间用网线连接 提供数据的计算机称为服务器,访问数据的计算机称为客户端 二.网络通讯的基 ...
- 使用TortoiseGit从GitHub下拉上传代码配置
转载:http://baijiahao.baidu.com/s?id=1579466751803515477&wfr=spider&for=pc 转载:https://blog.csd ...
- vsCode设置中文
1.安装软件之后,关闭欢迎界面,Ctrl+shift+p打开命令窗口,输入lang,选择configuration display language,改为 "locale":&qu ...
- 《编写高质量代码:Web 前端开发修炼之道》 笔记与读后感
编写高质量代码:Web 前端开发修炼之道/曹刘阳著. —北京:机械工业出版社,2010.5 第一版 涉及到的知识点: 1. CSS Sprites 在国内很多人叫css精灵,是一种网页图片应用处理方式 ...
- YII框架的使用
YII框架的使用 spit: 吐痰,吐口水, 过去式: spat spat: 本身也可以作为一个单词, 意思是: "小打小闹""小的吵闹""小争吵&q ...
- Excel lastindex of a substring
I think I get what you mean. Let's say for example you want the right-most \ in the following string ...