我想在Spring Boot应用程序中实现REST方法GET,该应用程序提供不同类型的文件。
例如,它可以返回PDF文档,JPEG图像,TIF图像等,实际上它是有的。
怎么做? 我应该将返回类型指定为Object:
@GetMapping("/document")
public Object getDocument() {
file = ... logic to retrieve a specific file (PDF, JPEG, TIF, ...)
return file;
}
客户端如何处理返回的值,以便从中获取正确的文件类型?
干杯
答案 0 :(得分:0)
您应该创建新类来指定响应。它应该是这样的:
public class Response{
public String type;
public Byte[] fileContent
... getter/setter/constructor etc
}
对于小文件(图像或pdf),这个想法应该没问题。对于大文件,它变得更加复杂
答案 1 :(得分:0)
到春天,我认为你的意思是spring-mvc。 你可以做这样的事情
@RequestMapping(value = "{fileName:.+}", method = RequestMethod.GET)
@ResponseBody
public void getImageSling(@PathVariable String fileName, HttpServletResponse response)throws IOException {
//read the file in byte[]
//evaluate content type you want to set
response.setContentType(contentType);
response.getOutputStream().write(byteStream.getByteStream());
response.getOutputStream().flush();
}
答案 2 :(得分:0)