如何使用RestTemplate上传文件呢?

戚薇 Spring 发布时间:2023-05-15 21:25:54 阅读数:5297 1
下文笔者讲述RestTemplate上传文件的方法分享,如下所示

上传文件(upload File)的简介

上传文件是我们日常业务开发中常见的需求
 那么如何使用resttemplate实现文件上传操作呢?
 下文笔者将一一道来,如下所示
RestTemplate上传文件的实现思路
     1.定义一个 MultiValueMap
	 2.将文件流封装为InputStreamResource对象
	 3.将 InputStreamResource 对象放入MultiValueMap中
	 4.将 MultiValueMap 封装到 httpEntity中
	 5.使用restTemplate发送post请求
例:RestTemplate使用配置
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
 
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        RestTemplateBuilder builder = new RestTemplateBuilder();
        return builder.build();
    }
}
//获取文件流,同时使用restTemplate发送请求
InputStream fileInputStream = *****;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
Long fileSize = ossObject.getObjectMetadata().getContentLength();
InputStreamResource resource = new InputStreamResource(fileInputStream) {
	@Override
	public String getFilename() {
		return file.getName();
	}
	@Override
	public long contentLength() {
		return fileSize;
	}
};
body.add("FileContent", resource);
HttpEntity<Object> httpEntity = new HttpEntity<>(body, headers);
registerRes = restTemplate.postForEntity("oos接口url", httpEntity, "接受类Class").getBody();
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202305/6449.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者