falta backend meter en bbdd y borrar antiguos

This commit is contained in:
jaimejimenezortega
2024-06-03 17:34:38 +02:00
parent 8833999e8d
commit 78126f6549
3 changed files with 11235 additions and 22 deletions

View File

@ -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']);

View File

@ -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

File diff suppressed because one or more lines are too long