springboot返回二进制流

在Spring Boot中,可以通过返回类型为 ResponseEntity<byte[]> 的方法来返回二进制流。

例如,如果您想返回一个字节数组作为响应,可以按照以下方式编写代码:

@GetMapping("/download")
public ResponseEntity<byte[]> downloadFile() throws IOException {
    byte[] fileContent = // 获取文件的二进制数据
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    headers.setContentDispositionFormData("attachment", "file.txt"); // 设置下载的文件名
    headers.setContentLength(fileContent.length);
    return new ResponseEntity<>(fileContent, headers, HttpStatus.OK);

在上面的代码中,我们定义了一个ResponseEntity<byte[]>类型的方法downloadFile(),它返回一个字节数组作为响应。我们设置了响应的Content-Type为APPLICATION_OCTET_STREAM,表示返回的是二进制流。同时,我们还设置了Content-Disposition标头,将文件名设置为"file.txt"。最后,我们将字节数组、HTTP标头和HTTP状态代码传递给ResponseEntity构造函数,以生成响应。

请注意,上面的代码仅作为示例,您需要将其根据您的需求进行修改。

  •