mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
falta backend meter en bbdd y borrar antiguos
This commit is contained in:
@ -799,14 +799,36 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
public function upload_files(){
|
||||
|
||||
if(!empty($_FILES) && $_FILES['file']>0){
|
||||
foreach ($_FILES['file'] as $file) {
|
||||
if ($file->isValid() && !$file->hasMoved()) {
|
||||
$file->move(WRITEPATH . 'uploads');
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
// Comprobar si se han subido archivos
|
||||
if (!empty($_FILES['file'])) {
|
||||
$files = $_FILES['file'];
|
||||
|
||||
// Iterar sobre los archivos
|
||||
for ($i = 0; $i < count($files['name']); $i++) {
|
||||
// Aquí puedes acceder a las propiedades del archivo
|
||||
$name = $files['name'][$i];
|
||||
$type = $files['type'][$i];
|
||||
$tmp_name = $files['tmp_name'][$i];
|
||||
$error = $files['error'][$i];
|
||||
$size = $files['size'][$i];
|
||||
|
||||
// Crear un hash único a partir del nombre del archivo
|
||||
$hash = hash('sha256', $name);
|
||||
// Usar el hash como el nuevo nombre del archivo
|
||||
$new_name = $hash . '.' . pathinfo($name, PATHINFO_EXTENSION);
|
||||
|
||||
// Se sube el fichero
|
||||
// Pero primero se comprueba que la carpeta presupuestos exista
|
||||
if (!is_dir(WRITEPATH . 'uploads/presupuestos')) {
|
||||
mkdir(WRITEPATH . 'uploads/presupuestos', 0777, true);
|
||||
}
|
||||
move_uploaded_file($tmp_name, WRITEPATH . 'uploads/presupuestos/' . $new_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return json_encode(['message' => 'Archivos subidos correctamente']);
|
||||
|
||||
|
||||
|
||||
@ -162,7 +162,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button id="submit-all">Subir archivos</button>
|
||||
<button id="submit-all" class="btn mt-3 btn-primary btn-submit waves-effect waves-light ml-2">
|
||||
<span class="align-middle d-sm-inline-block d-none me-sm-1">Actualizar ficheros</span>
|
||||
<i class="ti ti-upload ti-xs"></i>
|
||||
</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@ -219,27 +222,41 @@ if(<?php echo $presupuestoEntity->estado_id?>==2){
|
||||
|
||||
Dropzone.autoDiscover = false;
|
||||
|
||||
var dropzoneMulti = new Dropzone('#dropzone-multi', {
|
||||
url: "<?= site_url('presupuestos/presupuestocliente/upload_files') ?>",
|
||||
paramName: "file",
|
||||
uploadMultiple: true,
|
||||
parallelUploads: 100, // Ajusta este número al máximo número de archivos que esperas subir a la vez
|
||||
maxFiles: 100, // Ajusta este número al máximo número de archivos que esperas subir a la vez
|
||||
autoProcessQueue: false,
|
||||
init: function() {
|
||||
var submitButton = document.querySelector("#submit-all")
|
||||
myDropzone = this;
|
||||
var dropzoneMulti = new Dropzone('#dropzone-multi', {
|
||||
url: "<?= site_url('presupuestos/presupuestocliente/upload_files') ?>",
|
||||
addRemoveLinks: true,
|
||||
previewTemplate: previewTemplate,
|
||||
paramName: "file",
|
||||
uploadMultiple: true,
|
||||
parallelUploads: 4, // Ajusta este número al máximo número de archivos que esperas subir a la vez
|
||||
maxFiles: 5, // Ajusta este número al máximo número de archivos que esperas subir a la vez
|
||||
autoProcessQueue: true,
|
||||
acceptedFiles: 'image/*, application/pdf',
|
||||
maxFilesize: 5e+7, // Bytes
|
||||
|
||||
});
|
||||
|
||||
submitButton.addEventListener("click", function() {
|
||||
myDropzone.processQueue(); // Procesar la cola de archivos
|
||||
});
|
||||
}
|
||||
});
|
||||
$('#presupuesto-cliente-form').submit(function(e){
|
||||
e.preventDefault();
|
||||
var files = dropzoneMulti.files;
|
||||
|
||||
$('#submit-all').on('click', function(){
|
||||
dropzoneMulti.processQueue(); // Procesar la cola de archivos
|
||||
var formData = new FormData();
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
var file = files[i];
|
||||
formData.append('file[' + i + ']', file);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "<?= site_url('presupuestos/presupuestocliente/upload_files') ?>",
|
||||
type: 'POST',
|
||||
data: formData,
|
||||
processData: false, // Indicar a jQuery que no procese los datos
|
||||
contentType: false // Indicar a jQuery que no establezca el tipo de contenido
|
||||
}).done(function(response) {
|
||||
// Aquí puedes manejar la respuesta del servidor
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
11174
xdebug.log
11174
xdebug.log
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user