Java + Spring 引导:下载图像并将其传递给请求
Java + Spring Boot : Downloading image and pass it to a request
我有一个 Spring 引导应用程序,它应该像代理一样。
它应该处理像“http://imageservice/picture/123456”这样的请求
然后应用程序应该生成一个新的请求到“http://internal-picture-db/123456.jpg”,它应该下载它后面的图片 (123456.jpg),然后将它传递给响应并提供它。
应该是这样的……
@RequestMapping("/picture/{id}")
public String getArticleImage(@PathVariable String id, HttpServletResponse response) {
logger.info("Requested picture >> " + id + " <<");
// 1. download img from http://internal-picture-db/id.jpg ...
// 2. send img to response... ?!
response.???
}
我希望你明白我的意思...
所以我的问题是:最好的方法是什么?
仅供参考,无法发送重定向,因为该系统在 Internet 上不可用。
我会使用响应主体 return 图像而不是视图,例如:
@RequestMapping("/picture/{id}")
@ResponseBody
public HttpEntity<byte[]> getArticleImage(@PathVariable String id) {
logger.info("Requested picture >> " + id + " <<");
// 1. download img from http://internal-picture-db/id.jpg ...
byte[] image = ...
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
headers.setContentLength(image.length);
return new HttpEntity<byte[]>(image, headers);
}
您有一个 post 可以帮助您从另一个 url 下载图像:
how to download image from any web page in java
@RequestMapping("/picture/{id}")
public ResponseEntity<byte[]> getArticleImage(@PathVariable String id) {
logger.info("Requested picture >> " + id + " <<");
// 1. download img from http://internal-picture-db/id.jpg ...
byte[] image = ...
return new ResponseEntity<byte[]>(image, HttpStatus.OK);
}
并在post中查看下载图片的代码。
我有一个 Spring 引导应用程序,它应该像代理一样。
它应该处理像“http://imageservice/picture/123456”这样的请求
然后应用程序应该生成一个新的请求到“http://internal-picture-db/123456.jpg”,它应该下载它后面的图片 (123456.jpg),然后将它传递给响应并提供它。
应该是这样的……
@RequestMapping("/picture/{id}")
public String getArticleImage(@PathVariable String id, HttpServletResponse response) {
logger.info("Requested picture >> " + id + " <<");
// 1. download img from http://internal-picture-db/id.jpg ...
// 2. send img to response... ?!
response.???
}
我希望你明白我的意思...
所以我的问题是:最好的方法是什么?
仅供参考,无法发送重定向,因为该系统在 Internet 上不可用。
我会使用响应主体 return 图像而不是视图,例如:
@RequestMapping("/picture/{id}")
@ResponseBody
public HttpEntity<byte[]> getArticleImage(@PathVariable String id) {
logger.info("Requested picture >> " + id + " <<");
// 1. download img from http://internal-picture-db/id.jpg ...
byte[] image = ...
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
headers.setContentLength(image.length);
return new HttpEntity<byte[]>(image, headers);
}
您有一个 post 可以帮助您从另一个 url 下载图像: how to download image from any web page in java
@RequestMapping("/picture/{id}")
public ResponseEntity<byte[]> getArticleImage(@PathVariable String id) {
logger.info("Requested picture >> " + id + " <<");
// 1. download img from http://internal-picture-db/id.jpg ...
byte[] image = ...
return new ResponseEntity<byte[]>(image, HttpStatus.OK);
}
并在post中查看下载图片的代码。