Advertisement
CPV

DROPBOX Y PHP Y OCI

CPV
Jun 21st, 2016
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.13 KB | None | 0 0
  1. <?php # video explicativo : https://youtu.be/qZnGnv_UhEw
  2. $inicio_tiempo = microtime(true); # microtime Devuelve la fecha Unix actual con microsegundos
  3.  
  4. # almacenamos el nombre del archivo log
  5. $archivo_log = "log";
  6.  
  7. $contenido =  "------------------------------------------------------" . PHP_EOL;
  8. $contenido .= "------------------------------------------------------" . PHP_EOL;
  9. $contenido .= "------------------------------------------------------" . PHP_EOL;
  10. $contenido .= "------------------------------------------------------" . PHP_EOL;
  11. $contenido .= "---------  " . date("Y-m-d H:i:s") . "  ------------------" . PHP_EOL;
  12.  
  13. #Apertura para lectura y escritura; coloca el puntero del fichero al final del mismo. Si el fichero no existe, se intenta crear.
  14. if ($recurso = fopen($archivo_log, 'a+')) {  
  15.     require_once 'Dropbox/autoload.php'; # cargamos librerías de dropbox
  16.    $accesstoken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_"; #token
  17.    $dbxClient = new Dropbox\Client($accesstoken, 'PHP-Example/1.0'); #instanciamos la clase cliente para utilizar las funciones de Dropbox
  18.    try {
  19.         $conn = oci_connect('kbs3', 'kbs3', '192.168.102.33/db03') or die('ERROR de conexion');  #creamos una conexion con oracle
  20.    } catch (Exception $e) {
  21.        
  22.         # en caso de error  obtenemos el mensaje de error
  23.        echo '    -> Excepción capturada: ', $e->getMessage(), "\n";  
  24.        
  25.         # en caso de error cargamos la variable contenido con la fecha
  26.        $contenido.= date("Y-m-d H:i:s") . " -> Excepción capturada: " . $e->getMessage() . PHP_EOL;
  27.     }
  28.     #Prepara una sentencia de Oracle para su ejecución
  29.    $stmt = oci_parse($conn, "select DESCRIPCION,ID,NOMBRE,ARCHIVO,TIPO_ARCHIVO,UBICACION from fou_archvos");
  30.    
  31.     #Ejecuta una sentencia
  32.    oci_execute($stmt, OCI_DEFAULT);
  33.    
  34.     # Coloca la siguiente fila de una consulta en los búferes internos
  35.    while (oci_fetch($stmt)) {
  36.        
  37.         #devolvemos el valor de un campo de la fila obtenida
  38.        $blob = oci_result($stmt, "ARCHIVO");
  39.         $tipo_archivo = oci_result($stmt, "TIPO_ARCHIVO");
  40.         $id = oci_result($stmt, "ID");
  41.         $descripcion = oci_result($stmt, "DESCRIPCION");
  42.        
  43.         #cargamos el path con el nombre de archivo
  44.        $filename = "/home/kbs/oracle_dropbox/files/" . $tipo_archivo;
  45.        
  46.         # en caso que la variable descripcion sea pendiente
  47.        if ($descripcion == 'pendiente') {
  48.            
  49.             #si es diferente a null, si es un objet, si no está bacio
  50.            if ($blob and $blob != NULL and is_object($blob) == true and $tipo_archivo != NULL and empty($tipo_archivo) == FALSE) {
  51.                
  52.                 #Exporta el contenido de un LOB a un fichero
  53.                if ($blob->export($filename)) {
  54.                    
  55.                     #Transmite un fichero entero a una cadena
  56.                    $dbResult = file_get_contents($filename);
  57.                     if ($dbResult) {
  58.                        
  59.                         # Abre un fichero
  60.                        $file = fopen("files/" . $tipo_archivo, 'r');
  61.                        
  62.                         #subir archivo a dropbox
  63.                        $result = $dbxClient->uploadFile("/Public/KBS/file_$id/" . $tipo_archivo, Dropbox\WriteMode::add(), $file);
  64.                        
  65.                         #cerramos el puntero del archivo abierto
  66.                        fclose($file);
  67.                        
  68.                         #Borra un fichero
  69.                        unlink("files/" . $tipo_archivo);
  70.                        
  71.                         # establecemos la ruta y el archivo
  72.                        $path = "/Public/KBS/file_$id/" . $tipo_archivo;
  73.                        
  74.                         # verifocamos si la ruta del archivo es valida
  75.                        if (Dropbox\Path::isValid($path)) {
  76.                            
  77.                             # creamos el link para compartir
  78.                            $link = $dbxClient->createShareableLink($path);
  79.                            
  80.                             # mostramos la cadena en el terminal
  81.                            echo date("Y-m-d H:i:s") . " -> Archivo ID = ".$id." guardado y  Link creado de dropbox :  " . $link . "\n";
  82.                             $contenido.= date("Y-m-d H:i:s") . " -> Archivo ID = ".$id." guardado y  Link creado de dropbox :  " . $link . PHP_EOL;
  83.                            
  84.                         } else {
  85.                             # en caso de error mostramos la cadena en el terminal
  86.                            echo date("Y-m-d H:i:s") . " -> ERROR en ruta \n";
  87.                            
  88.                             # cargamos la fecha en la variable contenido
  89.                            $contenido.= date("Y-m-d H:i:s") . " -> ERROR en ruta " . PHP_EOL;
  90.                         }
  91.                        
  92.                         # almacenamos el contenido que cambiaremos en la ruta del archivo compartido de dropbox
  93.                        $dl = "dl.dropboxusercontent.com";
  94.                        
  95.                         # Reemplazamos el texto dentro de una porción de un string
  96.                        $link = substr_replace($link, $dl, 8, 15);
  97.                        
  98.                         # Preparamos una sentencia de Oracle para su ejecución
  99.                        $statement = oci_parse($conn, "update  fou_archvos set UBICACION ='" . $link . "', DESCRIPCION = 'dropbox' WHERE ID =" . $id);
  100.                        
  101.                         #  Ejecuta la sentencia
  102.                        if (oci_execute($statement)) {
  103.                            
  104.                             # muestra la cadena con la fecha y minutos con segundos en el terminal
  105.                            echo date("Y-m-d H:i:s")." ID = " .$id. ' -> actualizado en la base de datos ' . "\n";
  106.                            
  107.                             # almacenamos la cadena con la fecha y minutos con segundos en el terminal
  108.                            $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> actualizado en la base de datos ' . PHP_EOL;
  109.                            
  110.                         }  else {
  111.                            
  112.                             # muestra la cadena con la fecha y minutos con segundos en el terminal
  113.                            echo date("Y-m-d H:i:s")." ID = " .$id. ' -> ERROR NO actualizado en la base de datos ' . "\n";
  114.                            
  115.                             # almacenamos la cadena con la fecha y minutos con segundos en el terminal
  116.                            $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR NO actualizado en la base de datos ' . PHP_EOL;                            
  117.                         }
  118.                     } else {
  119.                        
  120.                         # muestra la cadena con la fecha y minutos con segundos en el terminal
  121.                        echo date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en guardar' . $tipo_archivo . "\n";
  122.                        
  123.                         # almacenamos la cadena con la fecha y minutos con segundos en el terminal
  124.                        $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en guardar' . $tipo_archivo . PHP_EOL;
  125.                     }
  126.                 } else {
  127.                    
  128.                     # Preparamos una sentencia de Oracle para su ejecución
  129.                    $statement = oci_parse($conn, "update  fou_archvos set DESCRIPCION = 'con error' , UBICACION =' no disponible ' WHERE ID =" . $id);
  130.                    
  131.                     #Ejecuta la sentencia
  132.                    oci_execute($statement);
  133.                    
  134.                     # mostramos la cadena con la fecha y el error
  135.                    echo date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en el export; nombre de archivo : ' . $tipo_archivo . " \n";
  136.                     $contenido.= date("Y-m-d H:i:s") ." ID = " .$id. ' -> ERROR en el export ; nombre de archivo :  ' . $tipo_archivo . PHP_EOL;
  137.                 }
  138.             } else {
  139.                 # Preparamos una sentencia de Oracle para su ejecución
  140.                $statement = oci_parse($conn, "update  fou_archvos set DESCRIPCION = 'con error' , UBICACION =' no disponible ' WHERE ID =" . $id);
  141.                
  142.                 # ejecutamos la sentencia
  143.                oci_execute($statement);
  144.                
  145.                 # mostramos la cadena con fecha el id
  146.                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";
  147.                 $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;
  148.             }
  149.         }else{
  150.            
  151.             echo 'PENDIENTE '.PHP_EOL;
  152.         }  
  153.     }
  154.     #Cerramos la conexión a Oracle
  155.    oci_close($conn);
  156.    
  157.     # mostramos el tiempo de ejecucion que demoró el script en procesar
  158.    $fin_tiempo = microtime(true);
  159.     $time = $fin_tiempo - $inicio_tiempo;
  160.     echo "tiempo :  $time segundos\n";
  161.    
  162.     # amacenamos el tiempo de ejecución del escript
  163.    $contenido.= "tiempo :  $time segundos" . PHP_EOL;
  164.    
  165.     # Escribimos el archivo en modo binario seguro
  166.    fwrite($recurso, $contenido);
  167.    
  168.     #  Cerramos el puntero del archivo abierto
  169.    fclose($recurso);
  170. } else {
  171.     echo 'ERROR al carga el recurso';
  172.    
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement