【发布时间】:2019-05-20 11:08:35
【问题描述】:
我有一个字节数组作为数据。现在我如何编写一个控制器方法来使用 Spring Boot 将此字节数组作为文件返回?如果我用这个字节数组数据创建一个文件,那么我也应该注意删除它,对吗?
有没有办法将这个字节数组作为文件发送,而不必在我的项目中物理创建文件,也许通过网络或其他方式发送所有字节?
但是,如果这是不可能的,那么文件创建、在 rest api 中响应然后删除它是解决这个问题的唯一方法吗?我的控制器方法在 Spring Boot 中看起来像这样
@GetMapping("/download")
public ResponseEntity<Resource> download(String param) throws IOException {
// Assume I already have this byte array from db or something
Byte[] a = getItFromDB();
// return it as a file without explicitly creating another file in my machine
// I am ok with changing return type of this method from ResponseEntity to anything else if you have a solution
}
【问题讨论】:
-
通常我们在 web 容器的 temp 和一个计划在 1 天后删除它们的 crontab 中创建这些文件...
-
哦,好的。这就说得通了。但是为什么要在 1 天后删除呢?如果我们退回后立即删除呢?
-
那是因为可能一个用户一天要多次下载一个文件,而且你应该等到下载完成然后你可以删除文件,所以你不知道客户端下载需要多少文件(互联网带宽...)
标签: java arrays spring file spring-boot