文件下载,当前在vertx rest通道和servlet rest中可用。
一、Producer
1.下载普通文件
return new File(......);
2.下载临时文件
本场景下,需要根据请求参数动态创建临时文件,下载完成后,需要将临时文件删除
return new FilePart(file).setDeleteAfterFinished(true);
3.下载org.springframework.core.io.Resource
因为resource不一定表示文件下载,所以需要通过swagger annotation(@ApiResponse)标识这是一个文件下载场景
以ByteArrayResource为例说明:
@GetMapping(path = "/resource")
@ApiResponses({
@ApiResponse(code = 200, response = File.class, message = "")
})
public Resource resource() {
……
return new ByteArrayResource(bytes) {
@Override
public String getFilename() {
return "resource.txt";
}
};
}
上例中,