網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、概述
MultipartFile為org.springframework.web.mutipart包下的一個(gè)類,也就是說(shuō)如果想使用MultipartFile這個(gè)類就必須引入spring框架,換句話說(shuō),如果想在項(xiàng)目中使用MultipartFile這個(gè)類,那么項(xiàng)目必須要使用spring框架才可以,否則無(wú)法引入這個(gè)類。MultipartFile翻譯成中文來(lái)講就是“多組件(類型)的文件”,不用太在乎他的中文含義,一般來(lái)講使用MultipartFile這個(gè)類主要是來(lái)實(shí)現(xiàn)以表單的形式進(jìn)行文件上傳功能。
二、對(duì)MultipartFile初步理解
1.MultipartFile一種可以接收使用多種請(qǐng)求方式來(lái)進(jìn)行上傳文件的代表形式。(如果使用spring框架來(lái)實(shí)現(xiàn)項(xiàng)目中的文件上傳功能,則MultipartFile是最合適的選擇,而這里提到的多種請(qǐng)求方式則可以通俗理解為以表單的形式提交)。
2.這個(gè)文件內(nèi)容可以存儲(chǔ)到內(nèi)存中或者存儲(chǔ)在磁盤的臨時(shí)位置上。
3.無(wú)論發(fā)生哪種情況,用戶都可以自由地拷貝文件內(nèi)容到session存儲(chǔ)中,或者以一種永久存儲(chǔ)的形式進(jìn)行存儲(chǔ)。
4.這種臨時(shí)性的存儲(chǔ)在請(qǐng)求結(jié)束之后將會(huì)被清除掉。
三、MultipartFile常用方法解析
1、getInputStream()方法
????首先MultipartFile是一個(gè)接口,并繼承自InputStreamSource,且在InputStreamSource接口中封裝了getInputStream方法,該方法的返回類型為InputStream類型,這也就是為什么MultipartFile文件可以轉(zhuǎn)換為輸入流。通過(guò)以下代碼即可將MultipartFile格式的文件轉(zhuǎn)換為輸入流。
2、getName方法
????getName方法獲取的是前后端約定的傳入文件的參數(shù)的名稱,在SpringBoot后臺(tái)中則是通過(guò)@Param(“uploadFile”) 注解定義的內(nèi)容。返回的name值從來(lái)不是null或者空,也就是說(shuō)如果使用MultipartFile來(lái)接收文件,那么@Param(“uploadFile”)定義的接收文件的名稱則必不可少,這樣才能接收到文件,如果沒(méi)有定義@Param(“uploadFile”),則接收不到文件。
3、getOriginalFileName方法
????getOriginalFileName方法獲取的是文件的完整名稱,包括文件名稱+文件拓展名。
4、getContentType方法
????getContentType方法獲取的是文件的類型,注意是文件的類型,不是文件的拓展名。
5、isEmpty方法
????isEmpty方法用來(lái)判斷傳入的文件是否為空,如果為空則表示沒(méi)有傳入任何文件。
6、getSize方法
????getSize方法用來(lái)獲取文件的大小,單位是字節(jié)。
7、getBytes方法
????getBytes方法用來(lái)將文件轉(zhuǎn)換成一種字節(jié)數(shù)組的方式進(jìn)行傳輸,會(huì)拋出IOException異常。
8、getInputStream方法
????getInputStream方法用來(lái)將文件轉(zhuǎn)換成輸入流的形式來(lái)傳輸文件,會(huì)拋出IOException異常。
9、transferTo方法
????transferTo方法用來(lái)將接收文件傳輸?shù)浇o定目標(biāo)路徑,會(huì)拋出IOException、IllegalStateException異常。該方法在實(shí)際項(xiàng)目開(kāi)發(fā)中使用較少。
10、MultipartFile常用方法獲取數(shù)據(jù)打印結(jié)果????
????我們以上傳一張圖片文件為例,分別來(lái)看一下調(diào)用不同方法所獲取到的數(shù)據(jù),如下圖2所示:
四、MultipartFile的一些使用技巧
(1)我們?cè)谑褂肕ultipartFile作為參數(shù)傳遞的時(shí)候,可以將MultipartFile聲明為一個(gè)數(shù)組,這樣就能支持多文件傳輸,如果只需要傳輸一個(gè)文件,則去掉數(shù)組就好了。
(2)可以根據(jù)MultipartFile的getSize方法來(lái)獲取到傳輸文件的大小,這樣就能限定傳輸過(guò)來(lái)的文件的大小了。
五、MultipartFile實(shí)操代碼展示(文件上傳oss對(duì)象存儲(chǔ))
public String uploadLaboratoryData(@RequestParam("file") MultipartFile file) throws ServiceException {
//getOriginalFileName方法獲取的是文件的完整名稱,包括文件名稱+文件拓展名
String ext = FilenameUtils.getExtension(file.getOriginalFilename());
String uuid = GeneratorUtil.genFileName();
try {
//storageBizService.upload()方法是阿里云oss存儲(chǔ)對(duì)象方法的存儲(chǔ)體封裝層:上傳文化后得到文件在阿里云oss上存儲(chǔ)的路徑
String url = storageBizService.upload("la/" + uuid + "." + ext, file.getInputStream(), file.getSize(),
}catch (IOException | SQLException | ParseException e) {
e.printStackTrace();
}
return url;
}
原文鏈接:https://blog.csdn.net/wangjingyuing/article/details/127512284
相關(guān)推薦
- 2022-07-24 CSP?communicating?sequential?processes并發(fā)模型_Golang
- 2023-02-15 Python函數(shù)常見(jiàn)幾種return返回值類型_python
- 2021-12-08 Linux之操作文件的系統(tǒng)調(diào)用_Linux
- 2022-06-14 C#使用正則表達(dá)式_C#教程
- 2022-06-02 TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸_python
- 2023-04-21 numpy.insert()的具體使用方法_python
- 2023-06-17 C++中for?auto的用法及說(shuō)明_C 語(yǔ)言
- 2022-04-07 怎么減少本地調(diào)試tomcat重啟次數(shù)你知道嗎_Tomcat
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支