本文使用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 文件上传、下载、设置大小相关推荐

  1. springboot文件上传下载实战 —— 登录功能、展示所有文件

    springboot文件上传下载实战 创建项目 pom.xml 数据库建表与环境准备 建表SQL 配置文件 application.properties 整体架构 前端页面 登录页面 login.ht ...

  2. springboot文件上传下载实战 ——文件上传、下载、在线打开、删除

    springboot文件上传下载实战 文件上传 文件上传核心 UserFileController 文件上传测试 文件下载与在线打开 文件下载.在线打开核心 UserFileController 文件 ...

  3. SpringBoot文件上传下载以及优化过程 -- 个人笔记

    Java IO/NIO/AIO的知识体系图 博主最开始是用IO实现文件上传下载功能,但发现效率慢,于是使用了NIO 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O ...

  4. SpringBoot文件上传下载

    第一部分 文件上传 一.新建项目 二.配置maven <?xml version="1.0" encoding="UTF-8"?> <proj ...

  5. 【笑小枫的SpringBoot系列】【十七】SpringBoot文件上传下载

    本文简介

  6. springboot:实现文件上传下载实时进度条功能【附带源码】

    0. 引言 记得刚入行的时候,做了一个文件上传的功能,因为上传时间较久,为了用户友好性,想要添加一个实时进度条,显示进度.奈何当时技术有限,查了许久也没用找到解决方案,最后不了了之. 近来偶然想到这个 ...

  7. SpringBoot文件上传和下载

    SpringBoot文件上传和下载 一.SpringBoot文件上传 1.SpringMVC文件上传 1.Client处理 选择文件(1)form表单 选择文件 method="post&q ...

  8. springboot文件上传和下载工具_SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有...

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  9. aws php 上传文件 限制大小_php如何实现文件上传下载-PHP问题

    php实现文件上传下载的方法:首先创建好表单页面:然后将客户端文件上传到服务器端:最后将服务器端的文件移动到指定目录即可. 推荐:<PHP视频教程> PHP实现文件上传与下载 一.上传原理 ...

  10. springboot文件上传和下载(批量/单个)

    前言 用springboot + jpa,批量上传.下载,一般批量下载处理方式都是将多个文件压缩成一个压缩包,然后在下载,主要的坑在于本地上传和下载都正常,部署在服务器上会出现各种错误,比如找不到路径 ...

最新文章

  1. git---gui使用
  2. VMware Network Adapter VMnet1和VMnet8 未识别的网络的解决方法
  3. 求生2本地服务器怎么修改参数,《求生之路2》服务器指令及难度参数设置(难度篇)...
  4. HUD2795 线段树(单点更新)
  5. [haoi2011]防线修建
  6. SAP License:OB52等与Client状态相关的前台操作
  7. plus webview关闭事件监听
  8. 备份类型 事务日志_SQL SERVER备份策略
  9. HTTP协议(转自:小坦克博客)
  10. Atitit 提升可读性sql subquery udf 子查询 目录 1. 使用udf 和参数@简化join和subquery 1 1.1.1. 子查询分类 1 2. 2.1 按返回结果集分类
  11. 【HAL库系列】1.STM32CubeIDE下载与配置
  12. 快解析 : 管家婆A8远程访问解决方案
  13. dart常用正则表达式
  14. 百度网盘青春版未推出前,使用这个网盘高速下载工具
  15. 数据分析5-银行客户风险评估实战
  16. Python+Tushare股票数据分析
  17. 马哥教育N63期-第一周作业
  18. springboot整合jett导出数据(2)
  19. c 语言获取系统时间并打印机,C# 获取打印机当前状态的方法
  20. 代码管理工具:Git

热门文章

  1. oracle表没有数据判断,Oracle中判断有表DROP无表CREATE的存储过程
  2. 蓝宝石 470 原版 bios_想怎么玩就怎么玩!改造双BIOS显卡,不再为噪音和性能选择而烦恼...
  3. Java不满足的依赖异常_不要依赖代码中的异常
  4. python求组合数c_【Python】算法之求组合
  5. 调剂2002年计算机科学与技术,教育部关于做好2002年全国研究生录取工作的通知...
  6. 【架构】学习余额宝背后的服务治理架构
  7. 《系统集成项目管理工程师》必背100个知识点-40缩短活动工期的措施
  8. RAID原理分析总结
  9. 信息系统项目管理师-项目质量管理核心知识点思维脑图
  10. ProtoBuf在使用protoc进行编译时提示: Required fields are not allowed in proto3