mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
falta cargar thumbail y preview
This commit is contained in:
@ -802,7 +802,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Check if the request is a POST request
|
// Check if the request is a POST request
|
||||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
|
|
||||||
$presupuesto_id = $_POST['presupuesto_id'];
|
$presupuesto_id = $this->request->getPost()['presupuesto_id'] ?? 0;
|
||||||
|
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoFicheroModel');
|
$model = model('App\Models\Presupuestos\PresupuestoFicheroModel');
|
||||||
$files = $model->getFiles($presupuesto_id);
|
$files = $model->getFiles($presupuesto_id);
|
||||||
@ -864,14 +864,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$model->deleteFiles($presupuesto_id);
|
$model->deleteFiles($presupuesto_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return json_encode(['message' => 'Archivos subidos correctamente']);
|
return json_encode(['message' => 'Archivos subidos correctamente']);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********************
|
/***********************
|
||||||
*
|
*
|
||||||
* Funciones auxiliares
|
* Funciones auxiliares
|
||||||
|
|||||||
@ -2,13 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Models\Presupuestos;
|
namespace App\Models\Presupuestos;
|
||||||
|
|
||||||
// Clave secreta para el cifrado y descifrado
|
|
||||||
define('SECRET_KEY', 'qnENEMHWt6sJgzGtEdfrT');
|
|
||||||
|
|
||||||
// Longitud del IV para AES-256-CBC
|
|
||||||
define('IV_LENGTH', openssl_cipher_iv_length('aes-256-cbc'));
|
|
||||||
|
|
||||||
|
|
||||||
class PresupuestoFicheroModel extends \App\Models\BaseModel
|
class PresupuestoFicheroModel extends \App\Models\BaseModel
|
||||||
{
|
{
|
||||||
protected $table = "presupuesto_ficheros";
|
protected $table = "presupuesto_ficheros";
|
||||||
@ -66,6 +59,14 @@ class PresupuestoFicheroModel extends \App\Models\BaseModel
|
|||||||
->where('presupuesto_id', $presupuesto_id)->delete();
|
->where('presupuesto_id', $presupuesto_id)->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getFiles($presupuesto_id){
|
||||||
|
return $this->db
|
||||||
|
->table($this->table . " t1")
|
||||||
|
->where('presupuesto_id', $presupuesto_id)->get()->getResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Función para convertir el nombre y extensión de un fichero en un hash único
|
* Función para convertir el nombre y extensión de un fichero en un hash único
|
||||||
* usando cifrado simétrico.
|
* usando cifrado simétrico.
|
||||||
@ -74,27 +75,8 @@ class PresupuestoFicheroModel extends \App\Models\BaseModel
|
|||||||
* @return string Hash encriptado del fichero
|
* @return string Hash encriptado del fichero
|
||||||
*/
|
*/
|
||||||
private function generateFileHash($filename) {
|
private function generateFileHash($filename) {
|
||||||
$iv = openssl_random_pseudo_bytes(IV_LENGTH); // Generar un IV aleatorio
|
return hash('sha256', $filename);
|
||||||
$encrypted = openssl_encrypt($filename, 'aes-256-cbc', SECRET_KEY, 0, $iv);
|
|
||||||
return base64_encode($iv . $encrypted); // Combinar IV y texto encriptado, y codificar en base64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Función para obtener el nombre del fichero original a partir de un hash encriptado
|
|
||||||
* usando cifrado simétrico.
|
|
||||||
*
|
|
||||||
* @param string $hash Hash encriptado del fichero
|
|
||||||
* @return string|null Nombre original del fichero, o null si falla el descifrado
|
|
||||||
*/
|
|
||||||
private function getFileNameFromHash($hash) {
|
|
||||||
$data = base64_decode($hash);
|
|
||||||
if ($data === false) {
|
|
||||||
return null; // Error en la decodificación base64
|
|
||||||
}
|
|
||||||
$iv = substr($data, 0, IV_LENGTH);
|
|
||||||
$encrypted = substr($data, IV_LENGTH);
|
|
||||||
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', SECRET_KEY, 0, $iv);
|
|
||||||
return $decrypted !== false ? $decrypted : null; // Verificar si el descifrado fue exitoso
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -235,14 +235,24 @@ if(<?php echo $presupuestoEntity->estado_id?>==2){
|
|||||||
maxFilesize: 5e+7, // Bytes
|
maxFilesize: 5e+7, // Bytes
|
||||||
init: function() {
|
init: function() {
|
||||||
thisDropzone = this;
|
thisDropzone = this;
|
||||||
$.get('upload.php', function(data) {
|
|
||||||
$.each(data, function(key,value){
|
|
||||||
|
|
||||||
var mockFile = { name: value.name, size: value.size };
|
$.ajax({
|
||||||
|
url: "<?= site_url('presupuestos/presupuestocliente/get_files') ?>",
|
||||||
|
type: 'POST',
|
||||||
|
data: { presupuesto_id: <?= $presupuestoEntity->id ?> },
|
||||||
|
|
||||||
|
}).done(function(response) {
|
||||||
|
if(response == null || response == ""){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
values = JSON.parse(response);
|
||||||
|
for(var i = 0; i < values.length; i++){
|
||||||
|
var mockFile = { name: values[i].name, size: values[i].size };
|
||||||
thisDropzone.options.addedfile.call(thisDropzone, mockFile);
|
thisDropzone.options.addedfile.call(thisDropzone, mockFile);
|
||||||
thisDropzone.options.thumbnail.call(thisDropzone, mockFile, "uploads/"+value.name);
|
thisDropzone.options.thumbnail.call(thisDropzone, mockFile, "uploads/"+values[i].name);
|
||||||
});
|
thisDropzone.options.complete.call(thisDropzone, mockFile);
|
||||||
|
thisDropzone.options.success.call(thisDropzone, mockFile);
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
16748
xdebug.log
16748
xdebug.log
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user