如何在 Spring 引导中 return InputStream 作为文件?

How to return an InputStream as a file in Spring Boot?

我有一个 InputStream 到一个使用 JSch 通过 SSH 从服务器获取的文件。我想 return 它作为我的 Spring 启动应用程序中的一个文件。

尝试使用我在许多论坛上看到的 ResponseEntity,但它不起作用

您可以使用 StreamingResponseBody 阅读我写的 post 以查看有关如何发送文件流的示例。

您可以像这样使用 HttpServletResponse:

 public static void sendFileInResponse (HttpServletResponse response, InputStream inputStream) throws IOException {
    response.setContentType("your_content_type");
    response.setHeader("Content-Disposition", "inline;filename=your_file_name");
    OutputStream outputStream = response.getOutputStream();
    byte[] buff = new byte[2048];
    int length = 0;
    while ((length = inputStream.read(buff)) > 0) {
        outputStream.write(buff, 0, length);
        outputStream.flush();
    }
    outputStream.close();
    inputStream.close();
    response.setHeader("Cache-Control", "private");
    response.setDateHeader("Expires", 0);
}