<?php
//==========================================================================================
//======================================LIBRERIAS===========================================
//==========================================================================================
session_start();
//conexion----------------------------------------------------------------------------------
require_once '../../conexion/conexion.php';
$bd = new connexion();
$bd->query("SET NAMES 'utf8'");
//==========================================================================================
//======================================VARIABLES===========================================
//==========================================================================================
//nombre del documento
$nombre = $_POST['nomb'];
//ID DEL DOCUMETO
$id_doc = "20".$_POST['id'];
//Obtencion Datos del Doc------------------------------------------------------------
$datos = datosDoc($bd, $id_doc);
//este es el archivo temporal
$imagen_temporal  = "../../recursos/file-upload/server/php/files/".$nombre;
//Tamaño	
$tamano = filesize($imagen_temporal);
//este es el tipo de archivo
$ext = get_extension($nombre);
//usuario
$user = $_SESSION["user"];
//ordenador
$ordenador = $_SESSION['host'];
//Creo la Entrada
$entrada = get_id_unico();
//VERSION
$version = $datos['VERSION'];
if ($version == "") {
  //SI ESTA VACIO LO VALIDO A CERO
  $version = '0';
}
//SUFIJO TABLA FICHEROS
$sufijo = $datos['SUFIJO'];
//==========================================================================================
//======================================ACCIONES============================================
//==========================================================================================
//CARGO EL CONTENIDO DEL DOCUMENTO----------------------------------------------------------
$fp     = fopen($imagen_temporal, 'r');
$data = fread($fp, filesize($imagen_temporal));
fclose($fp);
//escapar los caracteres--------------------------------------------------------------------
$data = mysqli_real_escape_string($bd, $data);
//ELIMINO EL CONTENIDO ANTERIOR DEL DOCUMENTO-----------------------------------------------
eliminaContenido($bd, $id_doc, $sufijo);
//CREO EL NUEVO CONTENIDO DEL DOCUMENTO-----------------------------------------------------
$parte = 1;
if ( $tamano > 16777216 ) {
	$array = str_split($data, 16777216);
	foreach ($array as $key => $value) {
		$fichero_ok = subirContenido($bd, $id_doc, $entrada, $parte, $sufijo, $value, $tamano, strlen($value));
		$parte++;
	}
} else {
	$entrada = get_id_unico();
	$fichero_ok = subirContenido($bd, $id_doc, $entrada, $parte, $sufijo, $data, $tamano, strlen($data));
}
//Valido la cant de partes a utilizar en la Biblioteca de Elementos---------------------------
if ($parte == 1) {
	$partes = $parte;
}else{
	$partes = $parte -1;
}
//HACER EL UPDATE DE LOS CAMPOS DE TAMAÑO - MODIFICACION - PARTES DE LA BIBLIOTECA_ELEMENTOS====
//ADICIONAL LIMPIO EL CAMPO BLOQUEO PARA LIBERAR EL DOCUMENTO-----------------------------------
updateDocumento($bd, $tamano, $partes, $id_doc);
//hago el registro en el log--------------------------------------------------------------------
//historialLog();

//==========================================================================================
//======================================FUNCIONES===========================================
//==========================================================================================
//FUNCION PARA OBTENER LOS DATOS DEL DOCUMENTO------------------------------------------------
 function datosDoc($bd, $id_doc){
  $sql =  " SELECT e.CLAVE, e.NOMBRE, e.EXTENSION, e.TAMANO, e.SUFIJO, e.PARTES, e.PADRE, e.AMBITO, e.ACCESO, e.VERSION
			FROM BIBLIOTECA_ELEMENTOS e 
			WHERE e.CLAVE = '$id_doc'";
  $base = $bd->query($sql);
  $datos = mysqli_fetch_assoc($base);
  $base->close();
  return $datos;
 } 
//ELIMINA EL CONTENIDO ANTERIOR DEL DOCUMENTO-----------------------------------------------
function eliminaContenido($bd, $id_doc, $sufijo)
{
  $query = "DELETE FROM FICHEROS_".$sufijo." 
			WHERE CLAVE = '$id_doc'";
  mysqli_query($bd, $query);
}
//Funcion para obtener la clave unica del registro------------------------------------------
function get_id_unico() 
{
	return date( "YmdHis" ) . sprintf( "%04d", rand( 0, 9999 ) );
}
//Funcion PARA SUBIR CONTENIDO---------------------------------------------------------------
function subirContenido($bd, $id_doc, $entrada, $parte, $sufijo, $data, $tamano, $size) 
{
	$fichero_ok = mysqli_query($bd, "INSERT INTO FICHEROS_".$sufijo." 
									(CLAVE, PARTE, VERSION, FICHERO, TAMANO, ENTRADA, COMPRIMIDO, TAMANOREAL, ENCRIPTADO) 
									VALUES 
									('$id_doc', $parte, 0, '$data', $tamano, '$entrada', 0, $size, 0)");
	return $fichero_ok;
}
//FUNCION PARA EL UPDATE DEL DOCUMENTO  DE LA TABLA DE ELEMENTOS ---------------------------
function updateDocumento($bd, $tamano, $partes, $id_doc)
{
	$query = "	UPDATE BIBLIOTECA_ELEMENTOS
				SET TAMANO = $tamano, MODIFICACION = now(), PARTES = $partes, BLOQUEO = ''
				WHERE CLAVE = '$id_doc'";
  mysqli_query($bd, $query);
}
//Funcion obtener la extension del archivo -------------------------------------------------
function get_extension($nombre) 
{
	// Convierto la cadena en un arreglo
	$a = explode( '.', $nombre );
	$ext = end( $a );
	$ext = strtoupper( $ext );
	return $ext;
}
//Funcion PARA CREAR EL REGISTRO EN EL LOG DEL HISTORIAL-------------------------------------
function historialLog() 
{
	global $bd, $clave, $user, $nombre, $ordenador, $ambito, $acceso_doc, $tamano, $user;
	mysqli_query($bd, "INSERT INTO BIBLIOTECA_HISTORIAL 
						(CLAVE, USUARIO, FECHA, ACCION, DOCUMENTO, CARPETA, ORDENADOR, AMBITO, ACCESO, TIPO, TAMANO, CREADOR, CONTROL) 
						VALUES 
						('$clave', '$user', now(), '100001', '$nombre', '$user', '$ordenador', '$ambito', '$acceso_doc', 'D', $tamano, '$user', 0)") ;
}
?>