cancel
Showing results for 
Search instead for 
Did you mean: 

Manejo de Binario en Alfresco(documento)

juanvzla
Champ in-the-making
Champ in-the-making
Hola a todos.
<code>
He realizado la busqueda en Alfresco mediante CMIS satifactoriamente, he observado dentro de la clase PropertyIds que esta en el package org.apache.chemistry.opencmis.commons;(Api de Alfresco) que existe un atributo de la clase que se llama "cmis:contentStreamId".

Dentro de mi busqueda que hago imprimo dicho campo y me devuelve : 
    store://2015/8/19/12/4/004608c3-286c-479f-9dd7-4bb45eb2cd8a.bin


Este campo es el que me devuelve el binario correcto?

AHora bien , deseo convertir ese binario en un documento para pintarlo en una pantalla como preview, como lo haria??

o como es el tratado de los documentos en alfresco en cuanto al binario que devuelve la busqueda???


Yo tengo ese codigo

Me funciona si copio el binario que me genera en una ruta que yo conozco en mi mauina
java.io.File fichero = new java.io.File("C:/Users/Subero/Desktop/binario/a3224d40-18bc-4e08-961e-2f0320f1bd60.bin");            
FileInputStream ficheroStream = new FileInputStream(fichero);            
byte contenido[] = new byte[(int)fichero.length()];         
InputStream stream = new ByteArrayInputStream(contenido);               
ficheroStream.read(contenido);
FileOutputStream out = new FileOutputStream("C:/Users/test/Desktop/binario/test.pdf");

Esto me funciona pero como lo hago realmente con una ruta del servidor???




<code>
3 REPLIES 3

angelborroy
Community Manager Community Manager
Community Manager
Todos los documentos en Alfresco se almacenan en formato BIN. En realidad, este es un metaformato que se aplica a cualquier formato (PDF, DOC…) pero no es el formato real de almacenamiento. La ruta que has obtenido en ese campo es la ruta física de almacenamiento en Alfresco (la verás en la carpeta
alfresco/alf_data/contententstore
del servidor).

Sin embargo, el método recomendado para descargar un fichero de Alfresco mediante CMIS es usar el método
getContentStream
del objeto
Document
.
Hyland Developer Evangelist

juanvzla
Champ in-the-making
Champ in-the-making
Si en efecto, uso el getContentStream pero esto me devuelve esto: store://2015/8/19/15/39/a3224d40-18bc-4e08-961e-2f0320f1bd60.bin

Lo que implica que debo realizar un split hasta dejar solamente //2015/8/19/15/39/a3224d40-18bc-4e08-961e-2f0320f1bd60.bin

Aunado a esto debo tener como variable de entorno la ruta de mi servidor hasta donde se encuentre <alf_data>

Es conclusion quedaria: <-variables de entorno que tenga la ruta hasta alf_data -> <-resultado de split ejemplo //2015/8/19/15/39/a3224d40-18bc-4e08-961e-2f0320f1bd60.bin
->

angelborroy
Community Manager Community Manager
Community Manager
doc.getContentStream().getStream()
te devuelve un
InputStream
estándar de Java.
Hyland Developer Evangelist