我想将文件附加到CouchbaseLite文档。我怎么能这样做?我没有在官方CBLite网站上找到任何代码示例 - CBLite code Sample。我仍然坚持如何完成它。
在代码中执行此操作的一种方法是:
Document document = mDatabaseLocal.createDocument();
document.getCurrentRevision().createRevision().setAttachment(name, contentType, contentStream);
但目前尚不清楚。 * 名称应该是什么? * - 这是本地磁盘上附件的绝对路径?
对于contentType:我不知道是否存在任何我可以作为contentType传递的枚举类或常量。
如何将多个文件附加到文档?我是否需要为每个附件创建unsavedRevision?
答案 0 :(得分:1)
每个附件的名称必须是唯一的,并且不引用本地文件,它指的是您要从文档中获取它的名称。
在这种情况下,您需要在修改前多次拨打createRevision()
,然后再setAttachment()
,然后再保存。
答案 1 :(得分:0)
您必须将输入流作为附件添加到文档中。
可在此处找到一个示例CouchBase Attachment Example。
您必须将每个文件转换为InputStream,然后才能将其设置为文档。
对于转换,您可以使用以下内容:
private InputStream getAsStream(YourData data)
{
baos = new ByteArrayOutputStream();
try
{
objOstream = new ObjectOutputStream(baos);
objOstream.writeObject(data);
} catch (IOException e)
{
e.printStackTrace();
}
bArray = baos.toByteArray();
bais = new ByteArrayInputStream(bArray);
return bais;
}
在此示例中,YourData可以是每个对象或您自己的某些对象类型。 希望这个解释能帮到你。