gpt4 book ai didi

java - 如何使用 spring 和 jersey 生成多种媒体类型

转载 作者:行者123 更新时间:2023-12-02 11:43:57 25 4
gpt4 key购买 nike

我是 REST 新手。我必须提出 Rest Controller ,它将以文件名作为参数并显示其内容。下面是代码

@RequestMapping(value = "/paths", method = RequestMethod.GET, produces = "application/pdf")

public ResponseEntity<InputStreamResource> downloadPDFFile() throws IOException {

ClassPathResource pdfFile = new ClassPathResource("PACKING LIST PDF 3000730933.pdf");

HttpHeaders headers = new HttpHeaders();
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
headers.add("Pragma", "no-cache");
headers.add("Expires", "0");

return ResponseEntity.ok().headers(headers).contentLength(pdfFile.contentLength())
.body(new InputStreamResource(pdfFile.getInputStream()));
}

上面的代码将显示 pdf 的内容,因为提到了 products = "application/pdf" 。我想要通用代码,可以采用所有文件格式,例如 imagedocdocxxlsxlsx 并显示内容并在 Response 中发送内容。

有人可以建议我这样做的方法吗?

最佳答案

实现此目的的最佳方法是使用单独的映射(方法),这将为您生成特定的格式。

@RequestMapping(value = "/paths")
public class YourApplication
{
@RequestMapping(value = "/pdf", method = RequestMethod.GET, produces = "application/pdf")
public ResponseEntity<InputStreamResource> downloadPDFFile() throws IOException {
// you code for pdf
}

@RequestMapping(value = "/xlsx", method = RequestMethod.GET, produces = "application/xlsx")
public ResponseEntity<InputStreamResource> downloadXLSXFile() throws IOException {
// you code for xlsx
}
}

然后,您可以针对特定类型拥有以下请求网址

/paths/pdf

/paths/xlsx

关于java - 如何使用 spring 和 jersey 生成多种媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48335353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com