我正在使用dropwizard进行休息api开发,返回json响应。我现在遇到了一个要求,我必须在一个特定的api调用时返回一个excel文件。我发现apache poi是一个很好用的库。但是我如何将excel文件作为响应返回。然后,浏览器应显示下载选项。
答案 0 :(得分:4)
将内容类型设置为application/octet-stream
,并添加Content-Disposition
响应标头。像Content-Disposition: attachment; filename="file.xsl"
这样的东西。例如
@Path("/file")
public class FileResource {
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getFile() throws Exception {
InputStream is = new FileInputStream("file.txt");
return Response.ok(is)
.header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename=\"file.txt\"")
.build();
}
}
除InputStream
以外,您可以返回File
,byte[]
,StreamingOutput
,您可以选择。