2014-03-19 50 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可以每對象或者一些你自己的對象類型的。 希望這個解釋能幫助你。