最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實(shí)現(xiàn)接受文件和對(duì)象

 更新時(shí)間:2025年12月06日 09:36:30   作者:LitongZero  
SpringBoot中接受文件和對(duì)象的場(chǎng)景,推薦使用`multipart/form-data`格式,后端可以通過接受實(shí)體并將文件放入對(duì)象屬性中來處理數(shù)據(jù),使用`@Validated`注解進(jìn)行參數(shù)校驗(yàn)是可行的,但要注意不要與`@RequestBody`注解同時(shí)使用

SpringBoot接受文件和對(duì)象

使用場(chǎng)景

某個(gè)接口,需要同時(shí)接受文件和實(shí)體,也就是參數(shù)。

  • 這個(gè)時(shí)候,前端就不能json格式傳送數(shù)據(jù)了,要用到multipart/form-data;這種格式傳送數(shù)據(jù)。
  • 那么,這個(gè)時(shí)候,后端應(yīng)該怎樣接受這個(gè)參數(shù)和文件呢?

1.接受HttpServletRequest,自己處理request(不推薦)

@PostMapping(value = "/upload")    
@ResponseBody    
public String handleFileUpload(HttpServletRequest request) {    
MultipartHttpServletRequest params=((MultipartHttpServletRequest) request);  
// 獲取文件
List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");   
// 獲取參數(shù)
String name=params.getParameter("name");  

2.接受實(shí)體,將文件放到對(duì)象屬性中(推薦)

public class UserFileReq {
	// 參數(shù)
    private String username;
    // 文件
    private MultipartFile file;
    // 省略get\set
}

@PostMapping(value = "/upload")    
@ResponseBody    
public String handleFileUpload(UserFileReq req) {    
// 文件和參數(shù) 都在實(shí)體中了
}

3.接受參數(shù),將文件放到接受參數(shù)中

這種方法適合接受單個(gè)文件參數(shù),多參數(shù)還是建議用對(duì)象接受,方便擴(kuò)展

@PostMapping(value = "/upload")    
@ResponseBody    
public String handleFileUpload(MultipartFile file) {    
}

4.一個(gè)坑

使用第二種方法的時(shí)候,一定不要加@RequestBody,加了這個(gè)注解,就會(huì)報(bào)如下錯(cuò)誤。

{
 "timestamp": 1571196217195,
 "status": 415,
 "error": "Unsupported Media Type",
 "exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
 "message": "Content type 'multipart/form-data;boundary=2gOOYeFBpE;charset=UTF-8' not supported",
 "path": "/file/upload"
}

所以,接受文件,不要使用@RequestBody注解

但是@Validated注解(校驗(yàn)參數(shù)的注解)是可以使用的。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 同步器SynchronousQueue詳解及實(shí)例

    java 同步器SynchronousQueue詳解及實(shí)例

    這篇文章主要介紹了java 同步器SynchronousQueue詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • springMVC返回復(fù)雜的json格式數(shù)據(jù)方法

    springMVC返回復(fù)雜的json格式數(shù)據(jù)方法

    下面小編就為大家分享一篇springMVC返回復(fù)雜的json格式數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Java實(shí)現(xiàn)將二叉樹展開為鏈表的兩種方法

    Java實(shí)現(xiàn)將二叉樹展開為鏈表的兩種方法

    文章介紹了兩種方法將二叉樹按前序遍歷順序展開為單鏈表,方法一為迭代法,方法二為前序遍歷+列表重建,兩者各有優(yōu)缺點(diǎn),選擇時(shí)需根據(jù)實(shí)際需求和場(chǎng)景考慮,下面小編給大家詳細(xì)說說
    2025-05-05
  • 關(guān)于Springboot中JSCH的使用及說明

    關(guān)于Springboot中JSCH的使用及說明

    這篇文章主要介紹了關(guān)于Springboot中JSCH的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-09-09
  • 帶你深入了解java-代理機(jī)制

    帶你深入了解java-代理機(jī)制

    Java 有兩種代理方式,一種是靜態(tài)代理,另一種是動(dòng)態(tài)代理。如果我們?cè)诖a編譯時(shí)就確定了被代理的類是哪一個(gè),那么就可以直接使用靜態(tài)代理;如果不能確定,那么可以使用類的動(dòng)態(tài)加載機(jī)制,在代碼運(yùn)行期間加載被代理的類這就是動(dòng)態(tài)代理
    2021-08-08
  • springboot如何集成Swagger2

    springboot如何集成Swagger2

    這篇文章主要介紹了springboot集成Swagger2的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-12-12
  • SpringBoot?整合數(shù)據(jù)源的具體實(shí)踐

    SpringBoot?整合數(shù)據(jù)源的具體實(shí)踐

    本文主要介紹了SpringBoot?整合數(shù)據(jù)源的具體實(shí)踐,利用?Spring?Boot?的自動(dòng)配置和簡(jiǎn)化的注解來簡(jiǎn)化數(shù)據(jù)源配置工作,從而更專注于應(yīng)用程序的業(yè)務(wù)邏輯開發(fā),感興趣的可以了解一下
    2023-11-11
  • 關(guān)于SpringMVC請(qǐng)求域?qū)ο蟮臄?shù)據(jù)共享問題

    關(guān)于SpringMVC請(qǐng)求域?qū)ο蟮臄?shù)據(jù)共享問題

    這篇文章主要介紹了SpringMVC請(qǐng)求域?qū)ο蟮臄?shù)據(jù)共享問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • SpringBoot修改yml配置和加載順序規(guī)則的示例詳解

    SpringBoot修改yml配置和加載順序規(guī)則的示例詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何修改yml配置和加載順序規(guī)則,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-08-08
  • 基于Java實(shí)現(xiàn)Word中插入附件的操作指南(支持所有文件格式)

    基于Java實(shí)現(xiàn)Word中插入附件的操作指南(支持所有文件格式)

    文章介紹了如何使用Java在Word文檔中嵌入附件,并通過OLE方式實(shí)現(xiàn),主要步驟包括:引入依賴、組裝附件圖標(biāo)、默認(rèn)附件圖標(biāo)、組裝Ole對(duì)象、插入附件到Word文檔以及使用模板,文章末尾提供了實(shí)現(xiàn)代碼和下載OLE模板的鏈接,需要的朋友可以參考下
    2025-12-12

最新評(píng)論

九寨沟县| 政和县| 荔波县| 张掖市| 西安市| 祁东县| 社会| 余干县| 磴口县| 萨迦县| 金湖县| 随州市| 仪征市| 浦城县| 延庆县| 嵊州市| 六安市| 东平县| 弋阳县| 涿鹿县| 阳城县| 佛学| 根河市| 新河县| 阿拉尔市| 长治市| 清原| 黔西| 祁连县| 弥渡县| 新乡市| 安图县| 南投县| 阿合奇县| 石林| 通州市| 奎屯市| 开封市| 固安县| 巴塘县| 蛟河市|