2013-02-01 3 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

내가 직접 REST 프레스코 서비스를 호출하는 것입니다,이 경우 썸네일 (doclib 또는 자리)를 검색 할 수있는 가장 효과적인 방법을 생각한다.

나는 100 % 확실하지 않지만 Alfresco Server의 CMIS 변환 응답에는 기존의 변환 만 포함되어 있습니다. Alfresco REST URL에서 제공하는 것과 같은 CMIS 변환 부분에는 자리 표시자가 없습니다.

+1

동의 함, Jean-Marie. CMIS를 통해 자리 표시자를 가져올 수 있다고는 생각하지 않습니다. –

+1

흠. CMIS Workbench 클라이언트를 사용하여 doclib 미리보기 이미지 콘텐츠 (CMIS 용어로 표현)를 얻을 수있었습니다. 내가 API에서 명시 적으로 문서화 된 것을 본 적이 없지만, 거기에 가치가 있을지도 모른다. –

+0

@ JM.Pascal Alfresco REST 서비스에 대한 올바른 방향을 알려줄 수 있습니까? 휠을 다시 발명하는 것보다 효과적입니다. - Jon –

0

여기에 열쇠는 if (renditions.size() > 0)에 있습니다 -> 이것은 정확히 웹 스크립트가하는 것입니다.

그러나 나머지 webscript도 않는 것은 광고에있는 else -> 표현으로 존재하지 않은 경우 지금까지, 그것은 MIME 형식을 결정 작성하고 대응하는 자리를 가져 오기 때문에.

코드에서 동일한 작업을 수행하여 자리 표시자를 가져오고> else를 추가 한 다음 해당 이미지의 자리 표시자를 찾습니다.

+0

그건 의미가 있지만, 내가 이해하지 못하는 것은 "그 이미지의 자리 표시자를 찾는 방법"입니다. –

+0

REST 자바 스크립트 컨트롤러와 같은 방식으로 mimetype을 결정하고 기본 미리보기에 대한 절대 경로를 지정합니다. 저는 지금 코드를보고 있지 않으므로 JS가 무엇을하는지 정확히 말할 수는 없지만 어렵지 않아야합니다. – Zlatko