【问题标题】:Unable to download file from swagger无法从 swagger 下载文件
【发布时间】:2016-12-20 15:18:42
【问题描述】:
@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 版。

没有 content-Disposition 标头 swagger 无法在 swagger-ui 中同步输出文件,它以二进制形式显示数据(我猜)有点损坏,而有了这个标头,我在 ResponseBody 中获得了一个链接,它也下载 pdf 但是损坏的表单与在 swagger-ui 中同步的相同。

我进行了一项研究,结果表明我们需要提供 datatype:"file" 以响应 link 。但 @ApiResponse 不包含任何数据类型字段。虽然它有响应的领域,但我不知道该给什么课 八位字节流输出。我已经尝试过 OutputStream 但它不起作用。

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

【问题讨论】:

    标签: java io swagger-2.0


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2012-06-18
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2018-09-27
      相关资源
      最近更新 更多