首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将图片存储到riak并从riak获取?

如何将图片存储到riak并从riak获取?
EN

Stack Overflow用户
提问于 2015-02-06 11:10:29
回答 1查看 442关注 0票数 3

在我的项目中,现在,我需要存储一些图像到Riak,然后从Riak获得它们,并在HTML页面中显示它们。

以下是我封装的API:

代码语言:javascript
复制
//inputstream is a stream of an image
byte[] imageContent = IOUtils.toByteArray(inputStream);
String descriptiveId = null;
String storedImageId = UUID.randomUUID().toString();
BlobContent blobContent = new BlobContent(imageContent,descriptiveId);
riakBlobDAO.create(storedImageId,blobContent);

.

代码语言:javascript
复制
//get the byte[] from riak by the uuid
   BlobContent returnedBlobContent  = riakBlobDAO.get(storedImageId);
   byte[] returnedImageContent = returnedBlobContent.getData();

如果我调用这个方法,它会返回一些东西,但是对于这个<img src="xxxx">,我不能从返回的东西中获得src,那么还有其他的解决方案吗?

我知道存储在riak中的图像是二进制字节,但我很困惑如何从riak获取它并将其显示在HTML页面中。

EN

回答 1

Stack Overflow用户

发布于 2015-03-10 04:01:26

如果我正确理解了您的问题,您将图像数据作为BLOB存储在Riak中并检索相同的数据。使用这个存储的BLOB,如果您尝试检索它并在HTML中执行类似以下操作:

代码语言:javascript
复制
<img src="*<...retrieved BLOB data...>*" /img>

那么它就不一定会起作用。理想的方法是将这个BLOB另存为一个文件(在/tmp中可能是一个临时文件),并使用相同的路径。

作为补充,如果您的图像的BLOB是HTML5下较新的浏览器支持的格式,那么您也可以使用以下格式直接传递数据:

代码语言:javascript
复制
<img src="data:image/png;base64, ....." />

更多信息请点击此处:Embedding Base64 Images

不过,请注意,上述方式在不同的浏览器上会有不同的行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28357955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档