当前位置: 首页 > 知识库问答 >
问题:

在spring rest API中,从数据库检索图像路径的理想方法是什么?

李耀
2023-03-14

我正在为客户开发一个春歇API。我能够以字节格式保存在数据库中的图像,也可以下载它。但是,android开发者只需要图像的路径,这样他就可以使用该路径在应用程序上显示图像。

我不确定如何获得图像的路径,因为它是我保存在数据库中的数据,因为我没有将该文件保存在任何文件夹中。

谁能给我指路;解决这个问题的正确方法应该是什么?

共有1个答案

桑璞
2023-03-14

为图像文件提供一个RESTendpoint,提供一个MediaType图像的响应,与JSON/XML或传统格式相反。

import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;

@RequestMapping(path = "/images/{imageId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<Resource> getImage(@PathVariable Long imageId) {
    try {

        File file = imageService.getImage(imageId);

        Path path = Paths.get(file.getAbsolutePath());
        ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path));

        return ResponseEntity.ok().contentLength(file.length()).contentType(MediaType.IMAGE_JPEG).body(resource);
    } catch (Exception e) {
        throw new InternalServerException("Unable to generate image");
    }
}
 类似资料:
  • 互联网日安! 我正在尝试从mysql数据库检索并显示一个图像到一个图像视图(android)中。图像是blob类型。我有以下php代码从MySQL获取图像。 下面是使用JSON的android代码。 提前感谢您的帮助!

  • 我正在C#visual studio中制作一个win forms程序。我有数据库中存储的所有图像的相对路径。我试图做的是,当从组合框中选择一个项目时,执行一个存储过程,它返回数据表并将所有内容放置在相关的文本框中。 但是,一列是. JPEG图像的相对路径。我需要获取相对路径并以某种方式转换它,以便程序获取实际图像并将其显示在Picture Box中。

  • 最近,我一直试图在Java中缩放像素数组(INT[])。我使用。setrgb()将我所有的像素数据添加到BufferedImage中。然后,BufferedImage提供了一个名为.getScaledInstance()的函数。这对我来说应该很有效,但我遇到了一个问题。.getScaledInstance()返回图像,而不是BufferedImage。对于Image对象,我不能使用.getrgb(

  • 你好,我正在制作员工目录。在这种形式下,我想上传员工的照片,当我试图存储图像时,我遇到了错误,比如Portlet暂时不可用,如果我成功删除图像上传逻辑,然后在数据库中删除其他数据存储。请帮助我如何在数据库中存储图像路径。我已在/webapps中创建图像文件夹。我想将我的所有图像存储在此文件夹中,并将图像路径存储到数据库中。请告诉我如何存储图像路径,以及存储图像路径后如何在其他页面中显示图像。 在这

  • 是否正确?现在,当我尝试从数据库中检索blob数据时,它每次都会更改,为什么?那么如何检索此图像呢?以下是我尝试过的代码: 我没有看到任何图像。为什么?请帮忙。谢谢

  • 被一个问题缠住了。我是android开发的新手。我的问题是我有一个SQLite数据库,我正在其中保存映像和一些数据,但当我检索这些数据时,映像没有显示在ListView中。其他数据正在被推翻。 这是我的自定义列表布局 null 这是我的自定义适配器 } 这是activity 这是数据列表