mejora en la apriencia del cloud.

This commit is contained in:
Pablinux
2025-06-18 02:17:58 -05:00
parent 9e3e170db5
commit 12b032b859
5 changed files with 662 additions and 253 deletions

View File

@@ -2,21 +2,25 @@ const controlador = {};
//const dirPath = "/home/pablinux/Projects/Node/APP-SIGMA-WEB/src/public/files/";
//const var_locals = ;
//********* APP-panel control ********//
const path = require('path');
controlador.upload = (req, res) => {
if (!req.files || Object.keys(req.files).lenght === 0) {
return res.status(400).send({ message: 'archivos no cargados' });
if (!req.files || Object.keys(req.files).length === 0) {
return res.status(400).json({ status: 'error', message: 'Archivos no cargados' });
} else {
const file = req.files.file_toUpload;
const path = req.app.locals.dir.path_dir + '/public/files/' + file.name;
console.log(path);
file.mv(path, (err) => {
const destinationPath = path.join(req.app.locals.dir.path_dir, file.name);
file.mv(destinationPath, (err) => {
if (err) {
return res.status(500).send(err);
console.error("Error al mover el archivo:", err);
return res.status(500).json({ status: 'error', message: 'Error al subir el archivo', error: err.message });
}
return res.send({ status: "success", path: path });
// *** Mantener la respuesta JSON ***
return res.json({ status: "success", message: `Archivo '${file.name}' subido exitosamente.` });
});
}
};
controlador.upload_video = (req, res) => {
if (!req.files || Object.keys(req.files).lenght === 0) {
return res.status(400).send({ message: 'archivos no cargados' });
@@ -34,18 +38,16 @@ controlador.upload_video = (req, res) => {
};
//ruta actual
const procesarPath = (path) => {
return path ? path.replace(/-/g, '/') : '/';
}
const fs = require('fs');
const fs = require('fs'); // Asegúrate de que esta línea esté al principio del archivo si no lo está
function leer_dir(dir) {
var json = [];
var files = fs.readdirSync(dir + '/public/files/', { withFileTypes: true });
// ¡CORRECCIÓN AQUÍ! Usa 'dir' directamente, sin añadir '/public/files/'
var files = fs.readdirSync(dir, { withFileTypes: true });
files.forEach(function (arch, idx) {
json.push({ "indice": idx, "archivo": arch.name, "link": "files/" + arch });
//console.log(arch.name);
//console.log(req);
// Si el link para la interfaz web debe ser relativo a 'files/', esto es correcto.
json.push({ "indice": idx, "archivo": arch.name, "link": "files/" + arch.name });
// Nota: 'arch' es un objeto dirent, necesitas 'arch.name' para el nombre del archivo.
});
return json;
}
@@ -69,8 +71,8 @@ controlador.cloud_panel = (req, res, next) => {
} else {
try {
if (rows.length > 0) {
let dir = procesarPath(req.params.path);
console.log(req.app.locals.dir);
//let dir = procesarPath(req.params.path);
//console.log(req.app.locals.dir);
var files = leer_dir(req.app.locals.dir.path_dir);
res.render('cloud', {
data: files
@@ -83,7 +85,7 @@ controlador.cloud_panel = (req, res, next) => {
}
} catch (e) {
res.render('login_cloud',{msg:e.toString()});
//next(e);
next(e);
}
}
});