REST-球衣-春季-文件下载

问题描述 投票:0回答:1

我有一个REST API(POST方法),该API产生MediaType.APPLICATION_OCTET_STREAM,并且响应头也使用以下代码设置。

@Path("/file")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFile() throws IOException {

。。。

ResponseBuilder respBuilder = Response.ok((Object) file);
respBuilder.header("Content-Disposition", "attachment; filename=\"" + file.getName() + "\";");
return respBuilder.build();

但是,当我从Postman或我的App调用此API时,它不会下载文件,而是在正文中提供内容和响应代码200的响应。

不确定这里出什么问题了!我应该在Spring / WEB Server中进行任何其他配置吗?

spring rest file download jersey
1个回答
0
投票

您需要返回一个InputStream作为响应主体。试试这个:

InputStream targetStream = new FileInputStream(file)
ResponseBuilder respBuilder = Response.ok(targetStream);
respBuilder.header("Content-Disposition", "attachment; filename=\"" + file.getName() + "\";");
return respBuilder.build();
© www.soinside.com 2019 - 2024. All rights reserved.