深入理解MultipartFile
hello,项目开始了,博客调研。
一、概述
MultipartFile是org.springframework.web.mutipart包下的一个类,需引入Springboot框架。一般来说是实现文件上传的功能。
二、分析
MultipartFile类的注释说明
第一句:一种可以接收使用多种请求方式来进行上传文件的代表形式。也就是说,如果你想用spring框架来实现项目中的文件上传功能,则MultipartFile可能是最合适的选择,而这里提到的多种请求方式则可以通俗理解为以表单的形式提交。
第二句:这个文件内容可以存储到内存中或者存储在磁盘的临时位置上。
第三句:无论发生哪种情况,用户都可以自由地拷贝文件内容到session存储中,或者以一种永久存储的形式进行存储,如果有需要的话。
第四句:这种临时性的存储在请求结束之后将会被清除掉。
三、MultipartFile常用方法
首先MultipartFile是一个接口,并继承自InputStreamSource,且在InputStreamSource接口中封装了getInputStream方法,该方法的返回类型为InputStream类型,这也就是为什么MultipartFile文件可以转换为输入流。通过以下代码即可将MultipartFile格式的文件转换为输入流。
multipartFile.getInputStream();
(1)、getName方法
就是说如果使用MultipartFile来接收文件,那么@Param("uploadFile")定义的接收文件的名称则 必不可少,这样才能接收到文件,如果没有定义@Param("uploadFile"),则接收不到文件。
(2)、getOriginalFileName方法
getOriginalFileName方法获取的是文件的完整名称,包括文件名称+文件拓展名。
(3)、getContentType方法
getContentType方法获取的是文件的类型,注意是文件的类型,不是文件的拓展名。
(4)、isEmpty方法
isEmpty方法用来判断传入的文件是否为空,如果为空则表示没有传入任何文件。
(5)、getSize方法
getSize方法用来获取文件的大小,单位是字节。
(6)、getBytes方法
getBytes方法用来将文件转换成一种字节数组的方式进行传输,会抛出IOException异常。
(7)、getInputStream方法
getInputStream方法用来将文件转换成输入流的形式来传输文件,会抛出IOException异常。
(8)、transferTo方法
transferTo方法用来将接收文件传输到给定目标路径,会抛出IOException、IllegalStateException异常。该方法在实际项目开发中使用较少。
三、MultipartFile的一些使用技巧
(1)我们在使用MultipartFile作为参数传递的时候,可以将MultipartFile声明为一个数组,这样就能支持多文件传输,如果只需要传输一个文件,则去掉数组就好了。
(2)可以根据MultipartFile的getSize方法来获取到传输文件的大小,这样就能限定传输过来的文件的大小了。
可以在我的github中看到MultipartFile的实战代码:https://github.com/SteafanMrZhou/springBootPractice
深入理解MultipartFile相关推荐
- 初步理解MultipartFile[文件上传]
浅识MultipartFile 一.概述 二.对MultipartFile初步理解 1.MultipartFile类的注释说明 2.MultipartFile常用方法解析 三.MultipartFil ...
- anita的音乐空间(项目)
目录 项目核心功能 项目前置工作 1.创建项目 2.数据库设计 3.配置文件中配置数据库和xml 核心功能设计 1.登录功能 2.注册功能 3.上传音乐至音乐列表功能 4.播放音乐功能 5.删除音乐列 ...
- springmvc 传对象报400_源码导读:深入理解SpringMVC报400时的流程
相信很多同学都了解过(或者面试前都会复习过)springMVC的执行流程,如下图: 网图 转载请注明出处:Michael孟良 这里我想细节地理解下springMVC报400(也就是上图第5步拿到Han ...
- springboot文件上传服务器,SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)
本次的项目环境为 SpringBoot 2.0.4, JDK8.0. 服务器环境为CentOS7.0, Nginx的忘了版本. 前言 SpringBoot使用MultiPartFile接收来自表单的f ...
- MultipartFile和CommonsMultipartFile的区别!
MultipartFile 源码 package org.springframework.web.multipart;import java.io.File; import java.io.IOExc ...
- 项目需求--将文件(html格式的字符串)转换为MultipartFile格式的文件然后转调第三方接口
网上看了很多,但是不符合需求不说,还有很多都不能用....自己就整理了下相关的代码,可能会有点乱,自己理解着看 根据url地址将文件转换成MultipartFile格式的文件 /*** @descri ...
- 【SpringBoot】MultipartFile的transferTo()方法详解
目录 背景 问题 源码分析 后记 背景 我们在编写Spring Boot应用中,常会遇到文件上传问题,Spring Boot Web提供了MutipartFile的文件支持,具体和File的区别可自行 ...
- SpringMVC框架理解
1. Spring与Web环境集成 1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplicationContext(sprin ...
- MultipartFile类的说明
MultipartFile类的说明 MultipartFile类是一个接口 public interface MultipartFile /** * A representation of an ...
最新文章
- Missing key(s) in state_dict
- 场景切换 异步加载 loading条做法
- 陕西师范大学计算机专业录取,陕西师范大学计算机类专业2016年在山西理科高考录取最低分数线...
- mybatis 开发环境搭建
- et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)
- echarts字变大_在echarts中如何调整lable的字体大小?
- 对抗思想与强化学习的碰撞-SeqGAN模型原理和代码解析
- C++的六个默认函数
- Firefox 密码管理器 Lockbox 推出 Android 版
- python限制输入数字范围_关于python:如何限制Django模型中数字字段的最大值?
- 你的工资基础决定你的前途
- 课程设计C语言歌手,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
- 微信小程序实现网络请求API获取数据
- bilibili 弹幕协议分析,golang 还原代码
- Linux面试必备基础知识(十一)——系统管理命令
- Could not connect to wpa_supplicant: p2p-dev-wlan0 - re-trying
- AtCoder Beginner Contest 126
- 《Head First Java (中文第二版)》勘误
- libvirt 详解(1)
- 02 学生成绩表(C语言)
热门文章
- 关于《无货源开店已确认违法》新闻稿说明
- leetcode91
- 标准误,标准差,置信区间分不清?派森诺教你画误差线
- oracle sun 小机价格,Oracle/Sun SPARC T3-1 服务器
- 6.1UiPath Orchestrator的注册
- (2012.01.12-2012.04.01)八十二天的学习小记
- 露露给我上了一堂7万的课_我在软件测试中的前10堂课
- matlab数字填图游戏,数字填色游戏下载-数字填色游戏安卓版下载(Paint By Number) v1.7.3-11773手游网...
- php随机数四位,生成四位随机数的PHP代码
- 河内塔算法java_河内递归塔Java