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")@ResponseBodypublic 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")@ResponseBodypublic String keywordSubmitFile(@RequestParam("fileName") List<MultipartFile> files) {for (MultipartFile file : files) {//这里简单输出文件名称 System.out.println(file.getOriginalFilename());}return "0";}
3.下载文件
@RequestMapping("/downloadFile") @ResponseBodypublic 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.maxFileSize
multipart.maxRequestSize
Spring Boot 1.4.x and 1.5.x
spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize
Spring Boot 2.x
spring.servlet.multipart.maxFileSize
spring.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
参考:
《Spring Boot入门——文件上传与下载》
《I am trying to set maxFileSize but it is not honored》
以上。
转载于:https://www.cnblogs.com/chevin/p/9260842.html
SpringBoot 文件上传、下载、设置大小相关推荐
- springboot文件上传下载实战 —— 登录功能、展示所有文件
springboot文件上传下载实战 创建项目 pom.xml 数据库建表与环境准备 建表SQL 配置文件 application.properties 整体架构 前端页面 登录页面 login.ht ...
- springboot文件上传下载实战 ——文件上传、下载、在线打开、删除
springboot文件上传下载实战 文件上传 文件上传核心 UserFileController 文件上传测试 文件下载与在线打开 文件下载.在线打开核心 UserFileController 文件 ...
- SpringBoot文件上传下载以及优化过程 -- 个人笔记
Java IO/NIO/AIO的知识体系图 博主最开始是用IO实现文件上传下载功能,但发现效率慢,于是使用了NIO 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O ...
- SpringBoot文件上传下载
第一部分 文件上传 一.新建项目 二.配置maven <?xml version="1.0" encoding="UTF-8"?> <proj ...
- 【笑小枫的SpringBoot系列】【十七】SpringBoot文件上传下载
本文简介
- springboot:实现文件上传下载实时进度条功能【附带源码】
0. 引言 记得刚入行的时候,做了一个文件上传的功能,因为上传时间较久,为了用户友好性,想要添加一个实时进度条,显示进度.奈何当时技术有限,查了许久也没用找到解决方案,最后不了了之. 近来偶然想到这个 ...
- SpringBoot文件上传和下载
SpringBoot文件上传和下载 一.SpringBoot文件上传 1.SpringMVC文件上传 1.Client处理 选择文件(1)form表单 选择文件 method="post&q ...
- springboot文件上传和下载工具_SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有...
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- aws php 上传文件 限制大小_php如何实现文件上传下载-PHP问题
php实现文件上传下载的方法:首先创建好表单页面:然后将客户端文件上传到服务器端:最后将服务器端的文件移动到指定目录即可. 推荐:<PHP视频教程> PHP实现文件上传与下载 一.上传原理 ...
- springboot文件上传和下载(批量/单个)
前言 用springboot + jpa,批量上传.下载,一般批量下载处理方式都是将多个文件压缩成一个压缩包,然后在下载,主要的坑在于本地上传和下载都正常,部署在服务器上会出现各种错误,比如找不到路径 ...
最新文章
- git---gui使用
- VMware Network Adapter VMnet1和VMnet8 未识别的网络的解决方法
- 求生2本地服务器怎么修改参数,《求生之路2》服务器指令及难度参数设置(难度篇)...
- HUD2795 线段树(单点更新)
- [haoi2011]防线修建
- SAP License:OB52等与Client状态相关的前台操作
- plus webview关闭事件监听
- 备份类型 事务日志_SQL SERVER备份策略
- HTTP协议(转自:小坦克博客)
- Atitit 提升可读性sql subquery udf 子查询 目录 1. 使用udf 和参数@简化join和subquery	1 1.1.1. 子查询分类	1 2. 2.1 按返回结果集分类
- 【HAL库系列】1.STM32CubeIDE下载与配置
- 快解析 : 管家婆A8远程访问解决方案
- dart常用正则表达式
- 百度网盘青春版未推出前,使用这个网盘高速下载工具
- 数据分析5-银行客户风险评估实战
- Python+Tushare股票数据分析
- 马哥教育N63期-第一周作业
- springboot整合jett导出数据(2)
- c 语言获取系统时间并打印机,C# 获取打印机当前状态的方法
- 代码管理工具:Git
热门文章
- oracle表没有数据判断,Oracle中判断有表DROP无表CREATE的存储过程
- 蓝宝石 470 原版 bios_想怎么玩就怎么玩!改造双BIOS显卡,不再为噪音和性能选择而烦恼...
- Java不满足的依赖异常_不要依赖代码中的异常
- python求组合数c_【Python】算法之求组合
- 调剂2002年计算机科学与技术,教育部关于做好2002年全国研究生录取工作的通知...
- 【架构】学习余额宝背后的服务治理架构
- 《系统集成项目管理工程师》必背100个知识点-40缩短活动工期的措施
- RAID原理分析总结
- 信息系统项目管理师-项目质量管理核心知识点思维脑图
- ProtoBuf在使用protoc进行编译时提示: Required fields are not allowed in proto3