Как загрузить изображение из репозитория Alfresco с помощью CMIS?

Я работаю с системой, которая загружает и загружает изображения в хранилище Alfresco, следуя структуре: «корень / folder1 / folder2 / image.jpg«

Мне удалось исправить часть загрузки, но я пытаюсь загрузить изображения, у меня есть следующий код:

if(!empty($path)) {
$path = $this->_clientCMIS->getObjectByPath('/'.$path);
$path = ' AND IN_FOLDER(\''.$path->id.'\')';
}
$query = 'SELECT * FROM cmis:document WHERE cmis:name = \''.$file.'\''.$path;
$documents = $this->_clientCMIS->query($query);
foreach ($documents->objectList as $document) {
$data = explode(':', $document->uuid);
array_push($response['data'], array(
'id' => $document->properties['cmis:objectId']
, 'path' => (isset($document->properties['cmis:path']))?$document->properties['cmis:path']:''
, 'name' => $document->properties['cmis:name']
, 'url' => 'http://'.$this->_ip.$this->_port.'/share/proxy/alfresco/api/node/content/workspace/SpacesStore/'.$data[2].'/'.$document->properties['cmis:name']
, 'type' => 'file'
, 'size' => $document->properties['cmis:contentStreamLength']
, 'createdBy' => $document->properties['cmis:createdBy']
, 'creationDate' => $document->properties['cmis:creationDate']
, 'lastModifiedBy' => $document->properties['cmis:lastModifiedBy']
, 'lastModificationDate' => $document->properties['cmis:lastModificationDate']
, 'parentId' => (isset($document->properties['cmis:parentId']))?$document->properties['cmis:parentId']:''
));
}
$response['total'] = sizeof($response['data']);
$response['error'] = '';

Я проверил переменные $ path и $ file и их значения верны (папка, в которой хранится изображение и имя изображения), но запрос возвращает пустой список объектов (поэтому код никогда не входит в цикл foreach).
Значение переменной $ query выглядит примерно так:

SELECT * FROM cmis:document WHERE cmis:name = 'my_image.jpg' AND IN_FOLDER('workspace://SpacesStore/5acb1737-b30a-2ff8-d47a-7f360c235bd0')

0

Решение

Этот запрос должен работать. Я предлагаю вам использовать что-то вроде Apache Chemistry OpenCMIS Workbench для проверки вашего запроса (или браузера узлов в Alfresco).

Может случиться так, что пользователь, которого вы аутентифицировали, не имеет доступа к папке, к которой вы запрашиваете.

Кроме того, незначительный недоумок, но будьте осторожны с путаницей ссылки узла Alfresco для идентификатора объекта CMIS. Это не одно и то же.

1

Другие решения

Других решений пока нет …