Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php # video explicativo : https://youtu.be/qZnGnv_UhEw
- $inicio_tiempo = microtime(true); # microtime Devuelve la fecha Unix actual con microsegundos
- # almacenamos el nombre del archivo log
- $archivo_log = "log";
- $contenido = "------------------------------------------------------" . PHP_EOL;
- $contenido .= "------------------------------------------------------" . PHP_EOL;
- $contenido .= "------------------------------------------------------" . PHP_EOL;
- $contenido .= "------------------------------------------------------" . PHP_EOL;
- $contenido .= "--------- " . date("Y-m-d H:i:s") . " ------------------" . PHP_EOL;
- #Apertura para lectura y escritura; coloca el puntero del fichero al final del mismo. Si el fichero no existe, se intenta crear.
- if ($recurso = fopen($archivo_log, 'a+')) {
- require_once 'Dropbox/autoload.php'; # cargamos librerías de dropbox
- $accesstoken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_"; #token
- $dbxClient = new Dropbox\Client($accesstoken, 'PHP-Example/1.0'); #instanciamos la clase cliente para utilizar las funciones de Dropbox
- try {
- $conn = oci_connect('kbs3', 'kbs3', '192.168.102.33/db03') or die('ERROR de conexion'); #creamos una conexion con oracle
- } catch (Exception $e) {
- # en caso de error obtenemos el mensaje de error
- echo ' -> Excepción capturada: ', $e->getMessage(), "\n";
- # en caso de error cargamos la variable contenido con la fecha
- $contenido.= date("Y-m-d H:i:s") . " -> Excepción capturada: " . $e->getMessage() . PHP_EOL;
- }
- #Prepara una sentencia de Oracle para su ejecución
- $stmt = oci_parse($conn, "select DESCRIPCION,ID,NOMBRE,ARCHIVO,TIPO_ARCHIVO,UBICACION from fou_archvos");
- #Ejecuta una sentencia
- oci_execute($stmt, OCI_DEFAULT);
- # Coloca la siguiente fila de una consulta en los búferes internos
- while (oci_fetch($stmt)) {
- #devolvemos el valor de un campo de la fila obtenida
- $blob = oci_result($stmt, "ARCHIVO");
- $tipo_archivo = oci_result($stmt, "TIPO_ARCHIVO");
- $id = oci_result($stmt, "ID");
- $descripcion = oci_result($stmt, "DESCRIPCION");
- #cargamos el path con el nombre de archivo
- $filename = "/home/kbs/oracle_dropbox/files/" . $tipo_archivo;
- # en caso que la variable descripcion sea pendiente
- if ($descripcion == 'pendiente') {
- #si es diferente a null, si es un objet, si no está bacio
- if ($blob and $blob != NULL and is_object($blob) == true and $tipo_archivo != NULL and empty($tipo_archivo) == FALSE) {
- #Exporta el contenido de un LOB a un fichero
- if ($blob->export($filename)) {
- #Transmite un fichero entero a una cadena
- $dbResult = file_get_contents($filename);
- if ($dbResult) {
- # Abre un fichero
- $file = fopen("files/" . $tipo_archivo, 'r');
- #subir archivo a dropbox
- $result = $dbxClient->uploadFile("/Public/KBS/file_$id/" . $tipo_archivo, Dropbox\WriteMode::add(), $file);
- #cerramos el puntero del archivo abierto
- fclose($file);
- #Borra un fichero
- unlink("files/" . $tipo_archivo);
- # establecemos la ruta y el archivo
- $path = "/Public/KBS/file_$id/" . $tipo_archivo;
- # verifocamos si la ruta del archivo es valida
- if (Dropbox\Path::isValid($path)) {
- # creamos el link para compartir
- $link = $dbxClient->createShareableLink($path);
- # mostramos la cadena en el terminal
- echo date("Y-m-d H:i:s") . " -> Archivo ID = ".$id." guardado y Link creado de dropbox : " . $link . "\n";
- $contenido.= date("Y-m-d H:i:s") . " -> Archivo ID = ".$id." guardado y Link creado de dropbox : " . $link . PHP_EOL;
- } else {
- # en caso de error mostramos la cadena en el terminal
- echo date("Y-m-d H:i:s") . " -> ERROR en ruta \n";
- # cargamos la fecha en la variable contenido
- $contenido.= date("Y-m-d H:i:s") . " -> ERROR en ruta " . PHP_EOL;
- }
- # almacenamos el contenido que cambiaremos en la ruta del archivo compartido de dropbox
- $dl = "dl.dropboxusercontent.com";
- # Reemplazamos el texto dentro de una porción de un string
- $link = substr_replace($link, $dl, 8, 15);
- # Preparamos una sentencia de Oracle para su ejecución
- $statement = oci_parse($conn, "update fou_archvos set UBICACION ='" . $link . "', DESCRIPCION = 'dropbox' WHERE ID =" . $id);
- # Ejecuta la sentencia
- if (oci_execute($statement)) {
- # muestra la cadena con la fecha y minutos con segundos en el terminal
- echo date("Y-m-d H:i:s")." ID = " .$id. ' -> actualizado en la base de datos ' . "\n";
- # almacenamos la cadena con la fecha y minutos con segundos en el terminal
- $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> actualizado en la base de datos ' . PHP_EOL;
- } else {
- # muestra la cadena con la fecha y minutos con segundos en el terminal
- echo date("Y-m-d H:i:s")." ID = " .$id. ' -> ERROR NO actualizado en la base de datos ' . "\n";
- # almacenamos la cadena con la fecha y minutos con segundos en el terminal
- $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR NO actualizado en la base de datos ' . PHP_EOL;
- }
- } else {
- # muestra la cadena con la fecha y minutos con segundos en el terminal
- echo date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en guardar' . $tipo_archivo . "\n";
- # almacenamos la cadena con la fecha y minutos con segundos en el terminal
- $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en guardar' . $tipo_archivo . PHP_EOL;
- }
- } else {
- # Preparamos una sentencia de Oracle para su ejecución
- $statement = oci_parse($conn, "update fou_archvos set DESCRIPCION = 'con error' , UBICACION =' no disponible ' WHERE ID =" . $id);
- #Ejecuta la sentencia
- oci_execute($statement);
- # mostramos la cadena con la fecha y el error
- echo date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en el export; nombre de archivo : ' . $tipo_archivo . " \n";
- $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en el export ; nombre de archivo : ' . $tipo_archivo . PHP_EOL;
- }
- } else {
- # Preparamos una sentencia de Oracle para su ejecución
- $statement = oci_parse($conn, "update fou_archvos set DESCRIPCION = 'con error' , UBICACION =' no disponible ' WHERE ID =" . $id);
- # ejecutamos la sentencia
- oci_execute($statement);
- # mostramos la cadena con fecha el id
- echo date("Y-m-d H:i:s") . " ID = $id -> ERROR en el campo Archivo con el nombre de archivo : " . $tipo_archivo . "! con ID : " . $id . "\n";
- $contenido.= date("Y-m-d H:i:s") . " ID = $id -> ERROR en el campo Archivo con el nombre de archivo : " . $tipo_archivo . "! con ID : " . $id . PHP_EOL;
- }
- }else{
- echo 'PENDIENTE '.PHP_EOL;
- }
- }
- #Cerramos la conexión a Oracle
- oci_close($conn);
- # mostramos el tiempo de ejecucion que demoró el script en procesar
- $fin_tiempo = microtime(true);
- $time = $fin_tiempo - $inicio_tiempo;
- echo "tiempo : $time segundos\n";
- # amacenamos el tiempo de ejecución del escript
- $contenido.= "tiempo : $time segundos" . PHP_EOL;
- # Escribimos el archivo en modo binario seguro
- fwrite($recurso, $contenido);
- # Cerramos el puntero del archivo abierto
- fclose($recurso);
- } else {
- echo 'ERROR al carga el recurso';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement