spring - 我们可以在 Spring Rest 模板中为 Multipart 文件上传设置自定义边界吗
问题描述
我想创建一个自定义边界来使用 Spring Rest 模板发送一些 json 数据和一些文件。我无法添加该自定义边界。我无法覆盖为边界值获取一些随机字符串的默认行为。下面是我的代码片段。有人可以建议如何获得自定义边界吗?
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_MIXED);
headers.set("boundary", "MyCustomboundary");
headers.set("accepts", "multipart/mixed");
MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();
'为 JSON 部分创建一个 HttpEntity'
HttpHeaders jsonHeader = new HttpHeaders();
jsonHeader.setContentType(MediaType.APPLICATION_JSON);
jsonHeader.set( "Content-Disposition","form-data");
jsonHeader.set("boundary", "MyCustomboundary");
jsonHeader.set( "name","Metadata");
ContentDisposition contentDisposition = ContentDisposition
.builder("form-data")
.name("file")
.filename("FileName"))
.build();
JSONObject json = getJSONObject();
HttpEntity<String> jsonHttpEntity = new HttpEntity<>(json.toString(), jsonHeader);
'为二进制部分创建一个 HttpEntity'
HttpHeaders pictureHeader = new HttpHeaders();
pictureHeader.set( "Content-Disposition","form-data");
pictureHeader.set( "name","Content");
pictureHeader.set("filename","FileNameTest");
pictureHeader.set("Content-Type", "application/octet-stream");
pictureHeader.set("boundary", "MyCustomboundary");
HttpEntity<ByteArrayResource> picturePart = new HttpEntity<>(new ByteArrayResource(multipartFile.getBytes()), pictureHeader);
'将两个部分放在一个请求中'
multipartRequest.add("myAwesomeJsonData", jsonHttpEntity);
multipartRequest.add("file", picturePart);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(multipartRequest, headers);
ResponseEntity<String> response = restTemplate.exchange(
endPointURL,
HttpMethod.POST,
requestEntity,
String.class);
**OutPut 是这样的 **
--xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm
内容处置:表单数据内容类型:应用程序/json 边界:MyCustomboundary 名称:元数据内容长度:359
{"JSON 密钥":"值"} --xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm
内容处置:表单数据名称:内容文件名:output.pdf 内容类型:应用程序/八位字节流边界:MyCustomboundary 内容长度:4504
<-- 文件内容-->
--xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm--
**但我希望它是**
--我的自定义边界
内容处置:表单数据内容类型:应用程序/json 边界:MyCustomboundary 名称:元数据内容长度:359
{"JSON 键":"值"} --MyCustomboundary
内容处置:表单数据名称:内容文件名:output.pdf 内容类型:应用程序/八位字节流边界:MyCustomboundary 内容长度:4504
<-- 文件内容-->
--我的自定义边界--
“有人可以建议如何添加这个自定义边界吗?”
解决方案
推荐阅读
- javascript - 如何在循环中打开这段代码
- pytorch - 预期 4 维输入,但得到 3 维输入
- npm - 执行 npm install gulp-sass 时出现 node-gyp 错误
- asp.net - ASP.NET CORE MVC CRUD 操作。创建表单不再起作用
- python - Python mysql代码插入包含数组的字典
- apache-spark - 无法从 spark 读取 Azure Eventhub 主题
- postgresql - 通过 pgAdmin 和 aws cli 为在 aws lightail 上运行的 postgres 实例设置 work_mem 时出错
- android - Flutter 外接键盘
- javascript - 在javascrypt中逐渐淡出var元素
- python - 如何设置 VS Code for Python 以正确启动/调试单个文件,从而尊重相对导入?