網站首頁 編程語言 正文
使用RestTemplate 模擬上傳文件的時候,不能在接收端接收到文件的字節。
/**
* 上傳文件
*
* @param name
* @param bytes
* @return
*/
public Long updateBytes(String name, byte[] bytes) throws XyidcException {
//設置請求頭
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setConnection("Keep-Alive");
headers.setCacheControl("no-cache");
//設置請求體,注意是LinkedMultiValueMap
ByteArrayResource fileSystemResource = new ByteArrayResource(bytes){
@Override
public String getFilename() {
return name;
}
};
MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
form.add("file", fileSystemResource);
form.add("filename", name);
//用HttpEntity封裝整個請求報文
HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
String s = restTemplate.postForObject("http://" + apiServerName + "/" + apiServerName + "/xyidc-basic/v1/file/upload", files, String.class);
JSONObject result = JSONObject.parseObject(s);
List<FileUploadRespVo> fileUploadRespVos = Lists.newArrayList();
if (SystemEnums.SUCCESS.getCode().equals(result.getString("code"))) {
JSONArray datas = result.getJSONArray("data");
for (Object data : datas) {
fileUploadRespVos.add(JSONObject.parseObject(JSONObject.toJSONString(data), FileUploadRespVo.class));
}
}
if (CollectionUtils.isEmpty(fileUploadRespVos)) {
logger.error(s);
throw new XyidcException("文件上傳報錯了,請查看一下");
}
return fileUploadRespVos.get(0).getFileId();
}
需要重寫ByteArrayResource的GetFilename接口
原文鏈接:https://blog.csdn.net/poem_2010/article/details/109594231
相關推薦
- 2023-01-14 C#實現啟動項管理的示例代碼_C#教程
- 2022-02-18 Ubuntu重啟后nvidia-smi命令報錯NVIDIA-SMI has failed becau
- 2022-08-11 C#實現快速查詢文件的方法_C#教程
- 2022-06-21 C語言超詳細講解文件的操作_C 語言
- 2022-07-20 C語言實例講解嵌套語句的用法_C 語言
- 2022-12-08 C++?Boost?Any示例分析使用_C 語言
- 2024-01-27 ioc,ioc實際運用
- 2023-11-15 Latex如何加粗文字;表格中如何加粗文字而不讓文本變寬
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支