Spring提供的API实现文件上传
Spring为我们提供了文件上传接口MultipartRequest及其实现类StandardMultipartFile
StandardMultipartFile是StandardMultipartHttpServletRequest中的private访问级别内部类。
MultipartRequest的使用
场景一:上传单个文件或多个文件,不传递参数
/**
* @RequestParam("file") 可以省略
* @param file
**/
@RequestMapping("/")
public void test1(@RequestParam("file") MultipartFile file){
log.info("文件名:"+file.getOriginalFilename());
}
@RequestMapping("/")
public void test1(@RequestParam("files") MultipartFile[] file){
log.info("文件名:"+file[0].getOriginalFilename());
}
场景二:上传单个文件或多个文件,前端传递参数
/**
* 使用Map接收参数,@RequestParam必须
* @param file
* @param map
*/
@RequestMapping("/")
public void test1(@RequestParam("file") MultipartFile file,@RequestParam Map<String, Object> map){
log.info("文件名:"+file.getOriginalFilename());
log.info("姓名:"+map.get("name"));
log.info("年龄:"+map.get("age"));
}
/**
* request 前端使用form-data格式传递,所以可以使用request.getParameter获取参数
* @param file
* @param request
*/
@RequestMapping("/")
public void test1(@RequestParam("file") MultipartFile file,HttpServletRequest request){
log.info("文件名:"+file.getOriginalFilename());
log.info("姓名:"+request.getParameter("name"));
log.info("年龄:"+request.getParameter("age"));
}
/**
* 使用对应的参数实体类接收,如User
* @param file
* @param user
*/
@RequestMapping("/")
public void test1(@RequestParam("file") MultipartFile file,User user){
log.info("文件名:"+file.getOriginalFilename());
log.info("姓名:"+user.getName());
log.info("年龄:"+user.getAge());
}
StandardMultipartHttpServletRequest的使用
@RequestMapping("/")
public void test1(HttpServletRequest request){
if(request instanceof StandardMultipartHttpServletRequest){
StandardMultipartHttpServletRequest servletRequest= (StandardMultipartHttpServletRequest) request;
//获取前端传入的参数
Map<String, String[]> paramMap=servletRequest.getParameterMap();
//获取上传的文件
Map<String, MultipartFile> fileMap = servletRequest.getFileMap();
}
}
Spring提供的API实现文件上传的更多相关文章
- Resumable.js – 基于 HTML5 File API 的文件上传
Resumable.js 是一个 JavaScript 库,通过 HTML5 文件 API 提供,稳定和可恢复的批量上传功能.在上传大文件的时候通过每个文件分割成小块,每块在上传失败的时候,上传会不断 ...
- Spring Boot 2.X 实现文件上传(三)
使用 SpringBoot 项目完成单个.多个文件的上传处理,并将上传的文件保存到指定目录下. 代码演示案例 所有的 HTML 页面文件 index.html <!DOCTYPE html> ...
- 从零开始的Spring Boot(3、Spring Boot静态资源和文件上传)
Spring Boot静态资源和文件上传 写在前面 从零开始的Spring Boot(2.在Spring Boot中整合Servlet.Filter.Listener的方式) https://www. ...
- Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例
在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ...
- 使用 JavaScript File API 实现文件上传
概述 以往对于基于浏览器的应用而言,访问本地文件都是一件头疼的事情.虽然伴随着 Web 2.0 应用技术的不断发展,JavaScript 正在扮演越来越重要的角色,但是出于安全性的考虑,JavaScr ...
- Spring Boot会员管理系统——处理文件上传
温馨提示 Spring Boot会员管理系统的中,需要涉及到Spring框架,SpringMVC框架,Hibernate框架,thymeleaf模板引擎.所以,可以学习下这些知识.当然,直接入门的话使 ...
- Spring中使用StandardServletMultipartResolver进行文件上传
从Spring3.1开始,Spring提供了两个MultipartResolver的实现用于处理multipart请求,分别是:CommonsMultipartResolver和StandardSer ...
- 基于spring 3.0mvc 框架的文件上传实现
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...
- Spring(七)SpringMVC的文件上传
1-SpringMVC的请求-文件上传-客户端表单实现(应用) 表单项type="file" 表单的提交方式是post 表单的enctype属性是多部分表单形式,及enctype= ...
随机推荐
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)
概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...
- 使用 gitbook 制作自己的 html 文档
使用 gitbook 制作自己的 html 文档 步骤如下 npm install gitbook-cli -g // 全局安装 gitbook-cli <span style="te ...
- 给王心凌打Call的,原来是神奇的智能湖仓
图文原创:谭婧(王凌老粉) "爷青回" "我们只是老了,并没有死." 谭老师作为老粉,热烈庆祝"甜心教主"王凌成为现象级翻红顶流. 只要地球 ...
- 【由浅入深_打牢基础】HOST头攻击
[由浅入深_打牢基础]HOST头攻击 前几天一直准备别的事情,然后用了2/3天时间去挖了补天某厂的SRC,还是太菜了,最后提交了一个低危(还没出结果,还有点敏感信息泄露,感觉略鸡肋也没交),不过偶然发 ...
- kubernetes code-generator使用
目录 Overview Prerequisites CRD code-generator 编写代码模板 code-generator Tag说明 开始填写文件内容 type.go doc.go reg ...
- 安装typescript环境并开启VSCode自动监视编译ts文件为js文件
一.前言 小编最近开始学习typescript,懂得人都知道,typescript是vue3的基础伴生,配合更加默契.就像vue2和js一样!typescript不像js那样浏览器直接可以解读,需要我 ...
- 你难道不知道Vue-cookie?
install npm install vue-cookies --save main.js import VueCookies from 'vue-cookies'Vue.use(VueCookie ...
- netty系列之:在netty中使用native传输协议
目录 简介 native传输协议的依赖 netty本地传输协议的使用 总结 简介 对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NIO,比如 ...
- 毕设必看——Python ttkbootstrap 制作账户注册信息界面
先来哔哔两句:(https://jq.qq.com/?_wv=1027&k=QgGWqAVF) ttkbootstrap 是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前 ...
- 交警也觉得妙——Python 识别车牌
车牌识别在高速公路中有着广泛的应用,比如我们常见的电子收费(ETC)系统和交通违章车辆的检测,除此之外像小区或地下 车库门禁也会用到,基本上凡是需要对车辆进行身份检测的地方都会用到. 一些背景: 车牌 ...