spring restTemplate 上传数据流/字节数组

本文详细介绍如何在不创建临时文件的情况下使用SpringMVC进行文件上传操作,通过构造MultiValueMap和HttpHeaders来发送multipart/form-data请求,同时展示了如何设置文件内容类型及随机文件名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在不想创建临时文件的情况下上传文件;

                MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();
				HttpHeaders headers = new HttpHeaders();
				headers.setContentType(MediaType.MULTIPART_FORM_DATA);
                HttpHeaders pictureHeader = new HttpHeaders();
                pictureHeader.setContentType(MediaType.parseMediaType(f.getContentType()));
                //如果是用spring 的MultipartFile接受,则加入下面这行, 去个随机文件名
                pictureHeader.setContentDispositionFormData("file", UUID.randomUUID()+".PNG");
                HttpEntity<ByteArrayResource> picturePart = new HttpEntity<>(new 
                ByteArrayResource(f.getBytes()), pictureHeader);
                multipartRequest.add("file", picturePart);
                HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<> 
                (multipartRequest, headers);
                ResponseEntity<String> result = restTemplate.exchange(
                        uploadUrl, HttpMethod.POST, 
                        requestEntity,
                        String.class);

参考:

https://tamasgyorfi.net/2015/03/27/posting-multipart-requests-with-resttemplate/

转载于:https://my.oschina.net/u/782865/blog/2873153

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值