03-06-2018 09:46 AM
Hola,
Estoy tratando de enviar el ContentStream de un archivo, el cuál a través de un archivo utilizando java. He buscado en Internet alguna forma pero no lo logro.
Lo que necesito es poder pasar este contenido un archivo que he creado con este webscript personalizado con POST, para así lograr que mi documento no esté vacío, así:
Agradecería su ayuda, o alguna sugerencia de cambiar el modo del cómo quiero obtener el contenido y aplicarlo al documento.
PD: Hice esta pregunta porque en al anterior al parecer no pude expresar bien lo que necesito para darle solución a este problema en el que estoy pegado.
03-09-2018 03:26 PM
Ya conseguí solucionarlo, pero sin enviar InputStream, sino el archivo...
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
//AlfTicket obtenido desde APi 'login' de Alfresco.
HttpPost post = new HttpPost("http://[IP]:[Puerto]/alfresco/service/[URLSegúnArchivoDescriptor]?alf_ticket=" + ticket);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
//'file' es el argumento a enviar, fileDoc es el archivo a enviar.
builder.addPart("file", new FileBody(fileDoc));
HttpEntity entity = builder.build();
post.setEntity(entity);
HttpResponse response = httpClient.build().execute(post);
Luego, en el Web Script (js) lo tomo así:
var file = null;
var name = args.name;
// Crea archivo
var doc = fldRut.createNode(name, "cm:content");
//Recorro el formdata para obtener el valor de file
for each (field in formdata.fields)
{
//Se consulta si el campo file es un archivo
if (field.name == "file" && field.isFile)
{
file = field;
logger.log("Archivo encontrado. Se tratará de guardar su contenido");
}
}
doc.properties.content.write(file.content);
doc.save();
Luego todo lo demás para enviar respuesta al FreeMarker...
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.