# # 文件下载及图片预览

目前`SwaggerBootstrapUi`以及`knife4j`支持的响应类型如下：

类型 | 说明
--- | ---
application/octet-stream | 二进制流
image/png | 图片
image/jpg | 图片
image/jpeg | 图片
image/gif | 图片

特别需要注意的是：不管是文件下载或者是需要图片预览,都需要在接口中指定接口的`produces`,否则不能达到预期效果,接口的produces可参考上面表格中列出项.

# # 关于文件下载的支持

`SwaggerBootstrapUi`在`1.8.9`版本中添加了`application/octet-stream`下载类型的支持,并在`1.9.0`版本中完善,只需要配置相应接口的produces,即可在`doc.html`页面中查看效果，如下图：

点击下载文件即可下载当前接口响应的二进制流.示例代码可参考Api190Controller.java
(opens new window)

特别说明,需要指定相应的produces

    @ApiOperation(value = "下载测试-有参数+请求头版",position = 3)
    @GetMapping(value = "/downloadFileAndParam2",produces = "application/octet-stream")
    public void postRequest3AndParam(@RequestHeader(value = "uud") String uud,@RequestParam(value = "name") String name, HttpServletRequest request, HttpServletResponse response){
        logger.info("header:{}",uud);
        download(name,response);
    }

# # 关于图片预览的支持

图片预览一般用在验证码等场景中,很多时候,需要直接展示出验证码的情况，如下图：

验证码预览的后端代码可参考ImageController.java
(opens new window)

特别说明,需要指定相应的produces

    @Api(value = "图片预览",tags = "图片预览")
    @RestController
    @RequestMapping("/api/image")
    public class ImageController {

        @GetMapping(value = "/preview",produces = "image/jpeg")
        public void preview(HttpServletRequest request, HttpServletResponse response) throws IOException {
            //more....
        }
    }

被围观 人次