Alfresco + PHP Descargar archivo del repositorio

cancel
Showing results for 
Search instead for 
Did you mean: 
javigarcia
Member II

Alfresco + PHP Descargar archivo del repositorio

Buenos días foreros!

estoy creando una aplicación para poder visualizar, descargar y subir archivos a un repositorio de Alfresco.

El tema de la visualización y subida lo tengo controlado (incluso subidas masivas especificando un directorio local), pero el problema lo tengo ahora en la descarga. Logro descargar lo que hay en el rep pero cuando lo abro (por ejemplo, un archivo .php) lo que veo es el código de la pantalla de login de Alfresco…

Estoy usando la función getUrl() de la librería ContentData.php para crear un fichero en local y escribir los datos de esa URL que me devuelve la función, pero me sale el código del login…

Alguna idea o algo que se me escape?

Mil gracias!
2 Replies
javigarcia
Member II

Re: Alfresco + PHP Descargar archivo del repositorio

Buenas de nuevo,

para daros más información de mi problema, os posteo la función que he programado para la descarga masiva de archivos del rep de Alfresco:



// Funcion para descargar todos los archivos del repositorio de Alfresco
function downloadFiles($path) {
   $total = 0;
   $url_archivos = array();
   // Conecto con el repositorio
   $conexion = Conexion::getIstance();
   if ($conexion->connectRepository($_SESSION['servidor'], $_SESSION['usuario'], $_SESSION['password'])) {
      $nodes = $conexion->session->query($conexion->spacesStore, REPOSITORIO);
      $guestHome = $nodes[0];
      // Recojo las URL de cada archivo y las guardo en un array
      foreach ($guestHome->children as $c) {
         if ($c->child->type == "{http://www.alfresco.org/model/content/1.0}content") {
            $contentData = $c->child->cm_content;
            if ($contentData != null) {
               $result = $contentData->getUrl();
            }
         }
         // Array con la URL de cada archivo
         array_push($url_archivos, $result);
      }
      // Recorro el array en busca de cada URL y descargo su correspondiente archivo en el path especificado
      foreach ($url_archivos as $url) {
         if ((@$f = fopen($url, 'r')) != false) {
            fclose($f);
            if ((@$f = fopen($path.basename($url), "w")) != false) {
               $contenido = file_get_contents($url);
               echo "Contenido: ".$contenido."<br>";
               fwrite($f, $contenido);
               fclose($f);
               $total++;
            }
         }
      }
   }
   echo "Total: ".$total;
}


Como podéis observar, primero busco la URL de cada archivo almacenado, y luego con un file_get_contents() voy llamando y escribiendo los contenidos de dichos archivos. El problema creo que está en que al llamar directamente a la URL de descarga me pide login, por eso todos los archivos contienen el código fuente del loger de Alfresco…

Otro problema que tengo es que, cuando quiera descargar imágenes, este sistema no me va a funcionar… porque necesitaría descargar el archivo físico, y no sus contenidos internos…

Alguna idea?

Gracias!

PD. antes de que empecéis a preguntar "qué es eso de $conexion = Conexion::getIstance()????" os comunico que para las comunicaciones entre Alfresco y PHP estoy usando mi propia clase cuya información podéis encontrarla aquí http://forums.alfresco.com/es/viewtopic.php?f=18&t=2037
javigarcia
Member II

Re: Alfresco + PHP Descargar archivo del repositorio

nadie?? venga que es fácil!! digo yo vamos xD