Spring-MVC,Java:为保存在FileSystem上的图像创建URL
问题内容:
我正在开发一个Spring-
MVC应用程序,其中对于用户而言,我们将缩略图保存在文件系统本身上。现在进行聊天,我想为保存在文件系统上的缩略图创建一个URL,并将其传递到前端。
例如:图像保存在
/home/username/datadir/personid.png
我想给网址类似:
domainname.com/personid.png
请注意,PersonId是唯一的,因此我可以使用该约束。保存图像的部分已经完成,我只是不知道如何使用保存在文件系统中的文件来创建图像URL。
你能帮忙的话,我会很高兴。非常感谢.. :-)
问题答案:
您应该在此调用中加入请求处理程序,例如
@RequestMapping("/image/{personId}")
@ResponseBody
public HttpEntity<byte[]> getPhoto(@PathVariable String personId) {
byte[] image = org.apache.commons.io.FileUtils.readFileToByteArray(new File([YOUR PATH] + File.separator + personId + ".png"));
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
headers.setContentLength(image.length);
return new HttpEntity<byte[]>(image, headers);
}
还请注意,您可以使用内容分析来确定适当的媒体类型,例如在Apache
Tika
的帮助下。这样,您不必存储文件名或对扩展名进行硬编码