日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

MultipartFile工具類的簡單介紹

作者:wangjingyuing 更新時間: 2022-10-29 編程語言

一、概述

MultipartFile為org.springframework.web.mutipart包下的一個類,也就是說如果想使用MultipartFile這個類就必須引入spring框架,換句話說,如果想在項目中使用MultipartFile這個類,那么項目必須要使用spring框架才可以,否則無法引入這個類。MultipartFile翻譯成中文來講就是“多組件(類型)的文件”,不用太在乎他的中文含義,一般來講使用MultipartFile這個類主要是來實現(xiàn)以表單的形式進行文件上傳功能。

二、對MultipartFile初步理解

1.MultipartFile一種可以接收使用多種請求方式來進行上傳文件的代表形式。(如果使用spring框架來實現(xiàn)項目中的文件上傳功能,則MultipartFile是最合適的選擇,而這里提到的多種請求方式則可以通俗理解為以表單的形式提交)。

2.這個文件內(nèi)容可以存儲到內(nèi)存中或者存儲在磁盤的臨時位置上。

3.無論發(fā)生哪種情況,用戶都可以自由地拷貝文件內(nèi)容到session存儲中,或者以一種永久存儲的形式進行存儲。

4.這種臨時性的存儲在請求結(jié)束之后將會被清除掉。

三、MultipartFile常用方法解析

1、getInputStream()方法
????首先MultipartFile是一個接口,并繼承自InputStreamSource,且在InputStreamSource接口中封裝了getInputStream方法,該方法的返回類型為InputStream類型,這也就是為什么MultipartFile文件可以轉(zhuǎn)換為輸入流。通過以下代碼即可將MultipartFile格式的文件轉(zhuǎn)換為輸入流。

2、getName方法
????getName方法獲取的是前后端約定的傳入文件的參數(shù)的名稱,在SpringBoot后臺中則是通過@Param(“uploadFile”) 注解定義的內(nèi)容。返回的name值從來不是null或者空,也就是說如果使用MultipartFile來接收文件,那么@Param(“uploadFile”)定義的接收文件的名稱則必不可少,這樣才能接收到文件,如果沒有定義@Param(“uploadFile”),則接收不到文件。

3、getOriginalFileName方法
????getOriginalFileName方法獲取的是文件的完整名稱,包括文件名稱+文件拓展名。

4、getContentType方法
????getContentType方法獲取的是文件的類型,注意是文件的類型,不是文件的拓展名。

5、isEmpty方法
????isEmpty方法用來判斷傳入的文件是否為空,如果為空則表示沒有傳入任何文件。

6、getSize方法
????getSize方法用來獲取文件的大小,單位是字節(jié)。

7、getBytes方法
????getBytes方法用來將文件轉(zhuǎn)換成一種字節(jié)數(shù)組的方式進行傳輸,會拋出IOException異常。

8、getInputStream方法
????getInputStream方法用來將文件轉(zhuǎn)換成輸入流的形式來傳輸文件,會拋出IOException異常。

9、transferTo方法
????transferTo方法用來將接收文件傳輸?shù)浇o定目標(biāo)路徑,會拋出IOException、IllegalStateException異常。該方法在實際項目開發(fā)中使用較少。
10、MultipartFile常用方法獲取數(shù)據(jù)打印結(jié)果????
????我們以上傳一張圖片文件為例,分別來看一下調(diào)用不同方法所獲取到的數(shù)據(jù),如下圖2所示:在這里插入圖片描述

四、MultipartFile的一些使用技巧

(1)我們在使用MultipartFile作為參數(shù)傳遞的時候,可以將MultipartFile聲明為一個數(shù)組,這樣就能支持多文件傳輸,如果只需要傳輸一個文件,則去掉數(shù)組就好了。

(2)可以根據(jù)MultipartFile的getSize方法來獲取到傳輸文件的大小,這樣就能限定傳輸過來的文件的大小了。

五、MultipartFile實操代碼展示(文件上傳oss對象存儲)

public String uploadLaboratoryData(@RequestParam("file") MultipartFile file) throws ServiceException {

       //getOriginalFileName方法獲取的是文件的完整名稱,包括文件名稱+文件拓展名
       
        String ext = FilenameUtils.getExtension(file.getOriginalFilename());
        String uuid = GeneratorUtil.genFileName();
    try {
    
    //storageBizService.upload()方法是阿里云oss存儲對象方法的存儲體封裝層:上傳文化后得到文件在阿里云oss上存儲的路徑
    
        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

欄目分類
最近更新