2014-03-19 48 views
0

我想将文件附加到CouchbaseLite文档。我该怎么做?我没有在官方CBLite网站上找到任何代码示例 - CBLite code Sample。我仍然坚持如何实现它。在代码中做到这一点如何将单个或多个附件附加到CouchbaseLite文档 - Android?

一种方法是:

Document document = mDatabaseLocal.createDocument(); 
    document.getCurrentRevision().createRevision().setAttachment(name, contentType, contentStream); 

但是这是不明确。 * 应该是什么名字? * - 它是本地磁盘上附件的绝对路径?

对于contentType:我不知道是否存在任何可以作为contentType传递的枚举类或常量。

如何将多个文件附加到文档?我是否需要为每个附件创建unsavedRevision?

回答

1

该名称对于每个附件必须是唯一的,并且不引用本地文件,它指的是要从文档中获取的名称。

在这种情况下,你会打电话createRevision()一次,然后setAttachment()的修订多次,保存前。

+0

让我试试看。那么接受它作为一个答案,如果它的工作。谢谢。 – Master

0

您必须将inputstream作为附件添加到您的文档中。

一个例子可以在这里找到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可以每对象或者一些你自己的对象类型的。 希望这个解释能帮助你。