Clientes SDK

A continuación una guía para integrar Pentafile en tus aplicaciones

SDK Javascript

A continuación cargar la librería de Pentafile

<script src="https://static.pentafilestore.com/pentafile.1.0.0.min.js"></script>

Recomendamos inicializar la variable una vez y asociar al window para posteriormente solo invocar la variable.

<script type="text/javascript">
var pentafile = new pentafile("repoKey");
window.pentafile = pentafile;
</script>

A continuación vemos los métodos disponibles y los resultados esperados

/** Subir archivos con la UI de pentafile
- Por defecto la API toma esos valores en la configuración
Para configurar, se debe seguir la siguiente estructura
allowedTypes: default '*'
- 'images/*'
- 'images/png,image/jpeg'
- 'application/pdf'
maxFileSize : default -1 (ilimitado)
- 0.5* 1024 * 1024 // 512 KB
- 1 * 1024 * 1024 // 1 MB
- 10 * 1024 * 1024 // 10 MB
- 1 * 1024 * 1024 * 1024 // 1 GB
crop_square:
- true // Muestra crop de imagenes
- false // Oculta Crop de imagenes
crop_circle:
- true // Muestra crop circular de imagenes, default true
- false // Oculta Crop circular de imagenes
crop_rotate:
- true // Muestra crop girar imagen, default true
- false // Oculta crop girar imagen
Las variables que comienzan con txt_*, son mensajes perzonalizables.
*/
function uploadFileUI() {
config: {
allowedTypes: '*',
maxFileSize: 10 * 1024 * 1024,
crop_square: true,
crop_circle: true,
crop_rotate: true,
txt_popup: 'Cargar archivo',
txt_file_upload: 'Arrastre o Seleccione el archivo a cargar',
txt_button_save: 'Guardar',
txt_button_upload: 'Subir',
txt_message_error: 'Se ha producido un erroe en el sistemaa, coordinar con TI'
},
pentafile.uploadFileUI({
start: function (file) {
console.log('start', file);
},
success: function (record) {
$("#field_upload1_key").val(record.key);
console.log(record);
$("#msm_result").html(JSON.stringify(record));
},
error: function (error) {
console.log('error', error);
}
});
}
/* Cargar el archivo con la API, sin UI */
pentafile.uploadFile($('#file_1'), {
start: function (file) {
console.log('start', file);
},
progress: function (progress) {
console.log("upload progress: " + Math.round(progress) + "%");
},
success: function (record) {
console.log(record);
},
error: function (error) {
console.log('error', error);
}
});
/* Descargar el archivo */
var fileKey="";
pentafile.downloadFile(fileKey, {
error: function (error) {
console.log('error', error);
}
});
/* Ver información del archivo */
pentafile.infoFile(fileKey, {
success: function (record) {
console.log('success', record);
},
error: function (error) {
console.log('error', error);
}
});
/* Eliminar archivo */
pentafile.deleteFile(fileKey, {
success: function (record) {
console.log('success', record);
},
error: function (error) {
console.log('error', error);
}
});

Parametros configurables

key

Identificador único del archivo proporcionado por el usuario, ejemplo (miarchivo.jpg,xmls/factura.pdf,etc)

Valores por defecto

  • Generación de nombre de archivo es aleatorio de 32 letras (UUID)

  • Tamaño de archivo máximo 10 MB

  • Texto de mensaje por defecto

A continuación se puede configurar los parámetros de "config"

/** Cargar archivo con UI y configuración **/
pentafile.uploadFileUI({
config: {
allowedTypes: '*',
maxFileSize: 10 * 1024 * 1024,
crop_square: true,
crop_circle: true,
crop_rotate: true,
txt_popup: 'Cargar archivo',
txt_file_upload: 'Seleccione el archivo',
txt_button_save: 'Guardar',
txt_button_upload: 'Subir',
txt_message_error: 'Se ha producido un error en el sistema',
random: false,
folder: 'myfolder'
}
start: function (file) {
console.log('start', file);
},
success: function (record) {
console.log("success record ",record);
},
error: function (error) {
console.log('error', error);
}
});
/** Cargar el archivo con la API, sin UI **/
pentafile.uploadFile(document.getElementById('file_1'), {
config: {
random: false,
folder: 'myfolder'
},
start: function (file) {
console.log('start', file);
},
progress: function (progress) {
console.log("upload progress " + Math.round(progress) + "%");
},
success: function (record) {
console.log("success record ",record);
},
error: function (error) {
console.log('error', error);
}
});

Los campos que devuelve son los mismos de la explicación anterior (Descripción e Campos).

handle

A continuación un ejemplo complejo con la integración de Pentafile en Javascript aquí.

SDK Java

Para Integrar en Java, se debe realizar lo siguiente.

Agregar la siguiente dependencia maven al pom.xml de tu proyecto

<!-- Pentafile On Premise maven dependency -->
<dependency>
<groupId>com.pentafile</groupId>
<artifactId>pentafile-jdk-java</artifactId>
<version>1.0.0</version>
</dependency>

y agregar la referencia al repositorio de artefactos

<repositories>
<repository>
<id>pentafile-release</id>
<url>http://developer.sotechcloud.com/archiva/repository/pentafile-release/</url>
</repository>
</repositories>

Ahora debes descargar el código de ejemplo de implementación de los métodos del cliente de Pentafile, descargar en github

SDK PHP

Para integrar en tu proyecto PHP, solo se debe agregar el directorio /pentafile/pentafile.php y agregar como requerido, para el funcionamiento es requerido solo el archivo pentafile.php, de este modo se adapta a cualquier Framework y proyecto PHP.

A continuación se expone el bloque de código con la implementación de referencia.

<?php
/**
* Ejemplo de Integración de Pentafile SDK for PHP
* www.pentafile.com
*/
require './Pentafile.php';
/**
* Instancia de la variable PENTAFILE
*/
$PentafileAPI = new Pentafile("http://IP-SERVER:8080/pentafile", "appkey");
/**
* Carga de archivo de disco
*/
$file_path = dirname(__FILE__) . '/bitnami.css';
/**
* Obtenemos el binario del archivo
*/
$file_content = file_get_contents($file_path);
uploadFile($PentafileAPI, basename($file_path), $file_content);
/**
*
* @param type $API
* @param type $filename
* @param type $content_file
*/
function uploadFile($API, $filename, $content_file) {
try {
$ObjectFile = $API->uploadFile($filename, $content_file);
echo $ObjectFile->getKey() . "<br>";
echo $ObjectFile->getFilename() . "<br>";
echo $ObjectFile->getSize() . "<br>";
echo $ObjectFile->getType() . "<br>";
echo $ObjectFile->getUrl() . "<br>";
} catch (Exception $ex) {
echo "Error: " . $ex;
}
}
/**
* Obtener información del archivo
* @param type $API
* @param type $key_file
*/
function infoFile($API, $key_file) {
try {
$ObjectFile = $API->infoFile($key_file);
echo $ObjectFile->getKey() . "<br>";
echo $ObjectFile->getFilename() . "<br>";
echo $ObjectFile->getSize() . "<br>";
echo $ObjectFile->getType() . "<br>";
echo $ObjectFile->getUrl() . "<br>";
} catch (Exception $ex) {
echo "Error: " . $ex;
}
}
/**
* Eliminar el archivo
* @param type $API
* @param type $key_file
*/
function deleteFile($API, $key_file) {
try {
$API->deleteFile($key_file);
// No return content
} catch (Exception $ex) {
echo "Error: " . $ex;
}
}
/**
* Descargar el archivo
* @param type $API
* @param type $key_file
*/
function downloadFile($API, $key_file) {
try {
$InputStream = $API->downloadFile($key_file);
/**
* Guardamos en contenido binario del archivo
*/
$my_file = dirname(__FILE__) . '/' . $key_file . '.css';
$handle = fopen($my_file, 'w') or die('Cannot open file: ' . $my_file);
fwrite($handle, $InputStream);
} catch (Exception $ex) {
echo "Error: " . $ex;
}
}

El ejemplo completo lo puedes descargar desde GitHub aquí