Spring-MVC,Java:为FileSystem上保存的图像创建URL

We *_*org 1 java image spring-mvc image-conversion imageurl

我正在开发一个Spring-MVC应用程序,在该应用程序中,我们将缩略图保存在文件系统本身上.现在进行聊天,我想为保存在文件系统上的缩略图创建一个URL,并在前端传递它.

例如:图像保存在

/home/username/datadir/personid.png
Run Code Online (Sandbox Code Playgroud)

我想给网址类似:

domainname.com/personid.png
Run Code Online (Sandbox Code Playgroud)

请注意PersonId是唯一的,所以我可以使用该约束.保存图像的部分已完成,我只是不知道如何从File-System上保存的文件中创建图像URL.

你能帮忙的话,我会很高兴.非常感谢.. :-)

Mas*_*ave 5

您应该使用请求处理程序来中间此调用,例如

@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);
}
Run Code Online (Sandbox Code Playgroud)

另请注意,您可以使用内容分析来确定适当的媒体类型,例如在Apache Tika的帮助下.这样您就不必存储文件名,也不必对扩展名进行硬编码