2013-02-01 31 views
1

我知道如果沒有縮略圖,下面的URL會給我一個文檔或佔位符圖像的縮略圖。這是因爲最後ph = true。來自CMIS我如何獲得Alfresco的縮略圖佔位符?

http://cms.mydomain.com:8080/share/proxy/alfresco/api/node/workspace/SpacesStore/" + childId + "/content/thumbnails/doclib?ph=true 

我也發現下面的服務器端代碼會讓我的縮略圖圖像的ContentStream。

OperationContext context = session.createOperationContext(); 
    context.setRenditionFilterString("cmis:thumbnail"); 
    CmisObject doc = session.getObject(id, context); 
    List<Rendition> renditions = doc.getRenditions(); 
    if (renditions.size() > 0) { 
     Rendition rend = renditions.get(0); 
     cs = rend.getContentStream(); 
    } 

問題是,如果沒有縮略圖像第一個URL那麼它不返回佔位符圖像。

對於服務器端,如何在沒有縮略圖時檢索相應的佔位符圖像?例如對於docx和xlsx文件。

感謝, 喬恩

回答

3

我認爲在這種情況下檢索縮略圖(doclib或佔位符)的最有效的方法是直接調用REST服務的Alfresco。

我不是100%確定,但來自Alfresco服務器的CMIS呈現響應只包含現有的呈現。在CMIS再現部分中沒有提供佔位符,就像Alfresco REST網址提供的那樣。

+1

同意,讓 - 瑪麗。我不認爲佔位符可以通過CMIS獲取。 –

+1

嗯。我確信我使用CMIS Workbench客戶端獲得了doclib縮略圖內容(以CMIS術語表示)。可能值得在那裏進行檢查,儘管我從未在API中明確記錄過它。 –

+0

@ JM.Pascal有人可以指向我Alfresco REST服務的正確方向嗎?聽起來比重新發明車輪更好。 - Jon –

0

這裏的關鍵是if (renditions.size() > 0) - >這正是webscript所做的。

但什麼REST webscript也確實是廣告的else - >所以如果有演繹至今,它填補確定MIME類型,並獲取相應的佔位符。

您應該在代碼中執行相同的操作,使其獲取佔位符 - >添加一個else,然後找到該圖像的佔位符。

+0

這是有道理的,但我不明白的是如何「然後找到該圖像的佔位符。」 –

+0

就像REST JavaScript控制器一樣 - 確定mimetype併爲其提供默認預覽的絕對路徑。我現在沒有看代碼,所以我不能確切地告訴你JS在那裏做什麼,但它不應該是困難的。 – Zlatko