无法从swagger下载文件

时间:2016-12-20 15:18:43

标签: java io swagger-2.0

@ApiResponses(value = {
        @ApiResponse(code = 200, message = "Perfect") })
public void getLabel(@QueryParam("orderItemsId") String orderItemsId,HttpServletRequest httpServletRequest,HttpServletResponse response) {
    String dataDirectory = httpServletRequest.getSession().getServletContext().getRealPath("/WEB-INF/files/label.pdf");
    Path file = Paths.get(dataDirectory);
    if (Files.exists(file))
    {
        response.setContentType("application/pdf");
        response.addHeader("Content-Disposition", "attachment; filename=\"label.pdf\"");
        try
        {
            Files.copy(file, response.getOutputStream());
            response.getOutputStream().flush();
        }
        catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

我正在使用springfox-swagger2 - 版本2.5.0与springfox-swagger-ui - 版本2.5.0。

没有内容 - 处理标题swagger无法在swagger-ui中同步输出文件,它显示二进制形式的数据(我猜)有点破坏,而有了这个标题,我在ResponseBody中获得了一个链接,它也下载了pdf但是与swagger-ui同步的腐败形式相同。

我做了一项研究,它表明我们需要在响应link中提供数据类型:“file”。但@ApiResponse不包含任何数据类型字段。虽然它有响应的字段,但我不确定要给予什么类 八位字节输出。我尝试过OutputStream,但它不起作用。

编辑:Swagger UI不支持下载文件。而如果通过其他来源调用相同的网址将完成这项工作。

0 个答案:

没有答案