小编iam*_*ulK的帖子

与 Spring-Boot 同时提供 JSON 响应和下载文件

要求: 我需要创建一个可以允许下载文件和 JSON 响应的 Rest API。

我已经有 2 个不同的 API 来解决这个问题,但现在我需要将这些 API 合并为一个。

public ResponseEntity<InputStreamResource> downloadFile1(
            @RequestParam(defaultValue = DEFAULT_FILE_NAME) String fileName) throws IOException {


    MediaType mediaType = MediaTypeUtils.getMediaTypeForFileName(this.servletContext, fileName);
    System.out.println("fileName: " + fileName);
    System.out.println("mediaType: " + mediaType);

    File file = new File(DIRECTORY + "/" + fileName);
    InputStreamResource resource = new InputStreamResource(new FileInputStream(file));

    return ResponseEntity.ok()
            // Content-Disposition
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + file.getName())
            // Content-Type
            .contentType(mediaType)
            // Contet-Length
            .contentLength(file.length()) //
            .body(resource);
}
Run Code Online (Sandbox Code Playgroud)

以上是仅返回要下载的文件的现有代码,但我也需要一个 json 响应。

java spring spring-boot

4
推荐指数
1
解决办法
1964
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1