gpt4 book ai didi

java - 如何使用 REST Web 服务将图像存储在 MySQL 数据库中

转载 作者:行者123 更新时间:2023-11-30 00:08:30 24 4
gpt4 key购买 nike

我正在开发 REST Web 服务,我可以将图像作为 BLOB 数据类型存储到 mysql 数据库。

有没有办法为客户端提供该图像的 url,以便他们可以访问该图像?

最佳答案

正如 Eric 提到的,您可以创建一个端点,就像存储图像一样,该端点会将图像返回给您。重要步骤总结如下:

从数据库中检索 blob(对于 MySQL):

Blob imageBlob = rs.getBlob("file");
InputStream binaryStream = imageBlob.getBinaryStream(1, imageBlob.length());

创建端点。您可以返回InputStream作为您的实体:

@GET
@Path("/GetFile")
@Produces("application/octet-stream")
public Response getFile(@QueryParam("fileId") long fileId) {
FileManager fileManager = new FileManager();

try {
InputStream inputStream = fileManager.getFileFromDB(fileId);

return Response.ok(inputStream, MediaType.APPLICATION_OCTET_STREAM)
.build();

} catch (Exception e) {
e.printStackTrace();
}

return Response.status(Status.NOT_FOUND).build();
}

在客户端,获取。这是来自 android 的一个小示例,其中我从 AsyncTask 的 doInBackground 返回一个 Bitmap 对象(这需要在后台线程中完成):

HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(<your_url_base>+"/GetFile?fileId=3"));
content = response.getEntity().getContent();
return BitmapFactory.decodeStream(content);

希望这有帮助。

关于java - 如何使用 REST Web 服务将图像存储在 MySQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com