第四章:Spring项目文件上传两种方式(全解析)
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程希望您能站在上帝的角度去观察(了解)Java体系。使Java的各种后端技术在你心中模块化;让你在工作中能将Java各个技术了然于心;能够即插即用。本章我们来一起了解Spring的文件上传全解析。
首先对于Spring的文件上传,我们仅仅需要关注三点
- Spring需要具备解析Multipart能力
- 前端需要文件转换为Multipart请求
- 在Controller中接收Multipart请求
在Spring项目中配置Multipart解析器
- StandardServletMultipartResolver
- CommonsMultipartResolver
在JavaConfig中配置StandardServletMultipartResolver
@Beanpublic MultipartResolver multipartResolver() throws IOException {return new StandardServletMultipartResolver();}@Overrideprotected void customizeRegistration(ServletRegistration.Dynamic registration) {registration.setMultipartConfig(new MultipartConfigElement("D://"));}
在JavaConfig配置CommonsMultipartResolver
@Beanpublic MultipartResolver multipartResolver() throws IOException {CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();commonsMultipartResolver.setUploadTempDir(new FileSystemResource("/temp"));return commonsMultipartResolver;}
在XML配置CommonsMultipartResolver
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="104857600"/><property name="maxInMemorySize" value="4096"/><property name="defaultEncoding" value="UTF-8"></property></bean>
在前端传递multipart请求
<form action="/fileUpload" method="post" enctype="multipart/form-data"><input type="file" name="file"><input type="submit" value="submit">
</form>
在Controller方法参数中接收multipart请求
- @RequestPart("file") byte[] file
- @RequestPart("file") Part file
- MultipartFile file
@RequestMapping("/fileUpload")public void FileUpload(@RequestPart("file") byte[] file) {...}
@RequestMapping("/fileUpload")public void FileUpload(@RequestPart("file") Part file) throws IOException {file.write("D://test.jpg");}
@RequestMapping("/fileUpload")public void FileUpload(MultipartFile file) throws IOException {String originalFilename = file.getOriginalFilename();file.transferTo(new File("D://" + originalFilename));}
Java开发之上帝之眼系列教程其他文章
- Java开发之上帝之眼系列教程前言和章节目录汇总
勘误&感谢
本系列文章资料来源很多出自于互联网和在下本身的见解,受限于个人技术能力水平和其他相关知识的限制,相关见解错误或者资料引用错误请各位帮助留言校正!引用资料多来自于互联网,在下在引用前会遵循各位前辈或者博主的引用说明表示感谢,但互联网资料多是转发再转发或存在遗漏请原作者内信联系指正。
第四章:Spring项目文件上传两种方式(全解析)相关推荐
- Python页面自动化文件上传两种方式
Python页面自动化测试之文件上传的两种方式 --广州_vivi 最近教学过程,学员项目出现测试上传文件无法执行的情况,分析发现学员项目的上传按钮并不是input按钮,导致无法使用直接定位元素方式进 ...
- 头像截图上传两种方式(SWFUpload、一个简单易用的flash插件)
SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统<input ty ...
- spring配置属性的两种方式
spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...
- Spring Boot2 整合 Shiro ,两种方式全总结!
前言:在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 文章目录 一.Spring Securit ...
- Spring系列教程八: Spring实现事务的两种方式
2019独角兽企业重金招聘Python工程师标准>>> 一. Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的 ...
- Express全系列教程之(四):获取Post参数的两种方式
一.关于POST请求 post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新. 相比于get请求,post ...
- spring 注入bean的两种方式
我们都知道,使用spring框架时,不用再使用new来实例化对象了,直接可以通过spring容器来注入即可. 而注入bean有两种方式: 一种是通过XML来配置的,分别有属性注入.构造函数注入和工厂方 ...
- Spring定义Bean的两种方式:<bean>和@Bean
前言: Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. 今天通过S ...
- apache shiro怎么升级_Spring Boot 整合 Shiro ,两种方式全总结!
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 一般来说,Spring Security 和 S ...
最新文章
- Maven 手动添加 JAR 包到本地仓库
- 分享3一个博客HTML5模板
- 找出两列表共有的元素python,两个列表之间的公共元素未在Python中使用集
- Boost正则表达式的编译与使用方法集
- 24 SD配置-主数据-维护客户主记录中的保留字段
- c语言 自动化办公,办公自动化快捷键大全
- 郴州大数据产业招商会在深举行,中琛源科技签约智慧水务项目
- 雕刻机控制软件破解笔记
- jersey 过滤_Jersey
- 这几招教你如何增加食物中铁的吸收
- YOLO测试图片显示准确率值
- 商业研究(13):下厨房,从投资角度看这个项目的前景和价值
- Ubuntu Server 20.04 下 HustOJ 安装
- Kali使用中文输入法
- [MAS]智能体交流 Agent Communication
- 【图解UDS】UDS汽车诊断标准协议(ISO 14229)带你入门到精通
- 安卓桌面壁纸_火莹视频桌面:好玩的动态桌面壁纸软件,让你的桌面动起来
- Rust P2P网络应用实战-1 P2P网络核心概念及Ping程序
- html5网页综合案例制作,网页开发与制作 HTML5页面元素及属性 2-21综合案例(6页)-原创力文档...
- 关于ARM指令的英文全称(方便记忆|巧记汇编指令)