06-07-2017 05:26 AM
Hola, tengo problemas al intentar subir ficheros con php a la api de alfresco 5.2, se crea el nodo con sus datos y todo ok, pero se genera un fichero vacío, este es mi código:
$ls_url = $this->getLs_url() . '/alfresco/api/-default-/public/alfresco/versions/1/nodes/-my-/children';
estos son los últimos headers con los que probé:
$headers = array(
'Authorization' => $la_auth['Authorization'],
'Accept' => 'multipart/form-data',
'filedata' => $lo_document['tmp_name']
);
me estoy volviendo loco y no sé qué más probar, alguien tiene idea en que estoy fallando o la manera de hacerlo?
Saludos y gracias
06-07-2017 08:33 AM
¿Has probado si te funciona con CURL?
curl -X POST -H "Authorization: Basic dGVzdDp0ZXN0" -H "Content-Type: multipart/form-data; boundary=----FormBoundary7MA4YWxkTrZu0gW" -F "filedata=@test.txt" "http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/-my-/children"
06-07-2017 09:25 AM
Acabo de intentarlo y me sale el siguiente error:
{"error":{"errorKey":"No disk space available","statusCode":409,"briefSummary":"05070128 No disk space available","stackTrace":"For security reasons the stack trace is no longer displayed, but the property is kept for previous versions","descriptionURL":"https://api-explorer.alfresco.com"}}
Alguna idea?
06-08-2017 03:46 AM
No te queda espacio disponible en el disco duro.
06-08-2017 07:08 AM
Eso pensaba yo pero al cargar un fichero por el cliente del alfresco (share) si que me deja, pero por cURL desde PHP me salta ese error diciendo que no hay espacio, alguna idea?
06-08-2017 08:12 AM
¿Puedes mirar si sale alguna traza adicional en el catalina.out del servidor?
06-12-2017 05:25 AM
No aparece nada en catalina.out, desde POSTMAN al intentar hacer un multipart/form-data con el auth correcto el fichero, el name y el nodeType también me salta el mismo error, no disk available
{
"error": {
"errorKey": "No disk space available",
"statusCode": 409,
"briefSummary": "05120050 No disk space available",
"stackTrace": "For security reasons the stack trace is no longer displayed, but the property is kept for previous versions",
"descriptionURL": "https://api-explorer.alfresco.com"
}
}
En cambio si voy al share y realizo un upload file se sube correctamente...el alfresco tiene 8gb libres y los documentos que utilizo son 29kb, puede ser algo relacionado con permisos?
06-12-2017 05:58 AM
Parece que tiene que ver con esto:
https://issues.alfresco.com/jira/browse/MNT-7213
Metieron un parche algo "extraño" para solucionarlo:
¿No le estás enviando un POST con form/multipart?
06-12-2017 07:51 AM
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_PORT => "8080",
CURLOPT_UPLOAD => 1,
CURLOPT_INFILE => $fp,
CURLOPT_INFILESIZE => filesize($lo_document['tmp_name']),
CURLOPT_URL => $this->getLs_url() . "/alfresco/api/-default-/public/alfresco/versions/1/nodes/-my-/children",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $la_file,
CURLOPT_HTTPHEADER => array(
"authorization: ".$la_auth['Authorization'],
"accept: multipart/form-data",
"content-type: multipart/form-data; boundary=----WebKitFormBoundary".md5(time()),
"cache-control: no-cache"
)
));
lo tengo así, en POSTMAN he conseguido subir un fichero, pero al intentar replicarlo en el cURL por php no consigo hacerlo, en POSTMAN me pasaba que no ponía la cabecera accept: multipart/form-data y en su lugar ponía Content-Type por eso no me dejaba, en cURL si quito Content-Type me sale el siguiente error:
{"error":{"errorKey":"Could not read content from HTTP request body: Unexpected character ('%' (code 37)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: java.io.BufferedReader@2cae9bb1; line: 1, column: 2]","statusCode":400,"briefSummary":"05120112 Could not read content from HTTP request body: Unexpected character ('%' (code 37)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: java.io.BufferedReader@2cae9bb1; line: 1, column: 2]","stackTrace":"For security reasons the stack trace is no longer displayed, but the property is kept for previous versions","descriptionURL":"https://api-explorer.alfresco.com"}}
Supongo que POSTMAN añade el Content-Type al hacer el send, alguna idea de porque mi petición cURL no le gusta a alfresco?
06-12-2017 09:54 AM
¿Has probado a generar el cliente PHP con el editor de swagger a partir del YAML de Alfresco? Quizá eso pueda darte una pista.
Editor de swagger: Swagger Editor
YAML de Alfresco: https://raw.githubusercontent.com/Alfresco/rest-api-explorer/master/src/main/webapp/definitions/alfr...
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.