java - Spring 不会完整返回 JSON
问题描述
我正在使用 spring boot 和 @PostMapping 试图返回一个包含 1 个多部分文件和一些字符串的 POJO。当我查看 Postman 时,我只看到 Multipart 对象的一半。文件为 3kb。我没有收到任何错误。当我返回多部分变量 null 时,JSON 中的其他变量会在响应中显示,因此它们不为空。我怎样才能返回所有的 JSON?
public class foo{
public MultipartFile dataFile;
public String project;
public Boolean extract;
... getter - setter - constructor
}
我像这样发送
@PostMapping
public foo route(@RequestParam("dataFile") MultipartFile dataFile, ... ) {
...
return fooObject;
}
回复
{
"dataFile": {
"name": "dataFile",
"bytes":"MIKCAQYJKoZIhvcNAQcCoIKB8jCCge4CA... (half of the file)
解决方案
正如我所想,MultipartFile
用于上传对象,而不是下载它。如Javadoc中所述:
在多部分请求中收到的上传文件的表示。
这意味着,它非常适合上传,但不适用于下载。
最简单的方法(也是最直接的)是将 a 更改MultipartFile
为 abyte[]
并将其发送给客户端。
这是一个例子:
public Foo getFile(MultipartFile multipartFile) {
byte[] bytes = multipartFile.getBytes();
return new Foo(bytes, "project");
}
推荐阅读
- django - 如何在终端中使用 django 函数从 django sqlite 数据库中删除竞争表?
- microsoft-cognitive - 无法为 Azure 认知服务创建知识库(错误:“未找到端点密钥。”)
- sql - SCCM 如何在此代码中添加计算机名称?
- spring-batch - 从 Oracle View 读取 Spring Batch
- javascript - 如何使用 javascript 更新 HTML 内容但使用 PHP 获取内容
- c# - 有没有办法在.NET的google drive docs api中找到自动保存?
- javascript - post api调用和使用post方法提交表单有什么区别?
- excel - 使用 VBA 将形状从一个 Excel 工作表复制到另一个工作表
- javascript - Element.getAttribute() 返回 promisestatus 作为 Pending :量角器
- node.js - 在 Adonisjs 中选择特定列的语句 .with builder 不起作用