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

SpringBoot實現接受文件和對象

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

SpringBoot接受文件和對象

使用場景

某個接口,需要同時接受文件和實體,也就是參數。

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

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

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

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

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

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

3.接受參數,將文件放到接受參數中

這種方法適合接受單個文件參數,多參數還是建議用對象接受,方便擴展

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

4.一個坑

使用第二種方法的時候,一定不要加@RequestBody,加了這個注解,就會報如下錯誤。

{
 "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注解(校驗參數的注解)是可以使用的。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • java 同步器SynchronousQueue詳解及實例

    java 同步器SynchronousQueue詳解及實例

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

    springMVC返回復雜的json格式數據方法

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

    Java實現將二叉樹展開為鏈表的兩種方法

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

    關于Springboot中JSCH的使用及說明

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

    帶你深入了解java-代理機制

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

    springboot如何集成Swagger2

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

    SpringBoot?整合數據源的具體實踐

    本文主要介紹了SpringBoot?整合數據源的具體實踐,利用?Spring?Boot?的自動配置和簡化的注解來簡化數據源配置工作,從而更專注于應用程序的業(yè)務邏輯開發(fā),感興趣的可以了解一下
    2023-11-11
  • 關于SpringMVC請求域對象的數據共享問題

    關于SpringMVC請求域對象的數據共享問題

    這篇文章主要介紹了SpringMVC請求域對象的數據共享問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • SpringBoot修改yml配置和加載順序規(guī)則的示例詳解

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

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

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

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

最新評論

湖北省| 井冈山市| 丰城市| 类乌齐县| 龙川县| 丰顺县| 大安市| 固镇县| 东台市| 静海县| 江永县| 铜陵市| 吐鲁番市| 安泽县| 邢台县| 南郑县| 区。| 谢通门县| 恭城| 威信县| 南阳市| 浦县| 宁海县| 广南县| 忻州市| 达州市| 阜平县| 乐清市| 崇明县| 溧水县| 章丘市| 钟祥市| 和田市| 巴马| 共和县| 唐海县| 清苑县| 莱州市| 揭东县| 阿克| 新民市|