97 lines
3.3 KiB
JavaScript
97 lines
3.3 KiB
JavaScript
const controlador = {};
|
|
//const dirPath = "/home/pablinux/Projects/Node/APP-SIGMA-WEB/src/public/files/";
|
|
//const var_locals = ;
|
|
//********* APP-panel control ********//
|
|
const { stringTo_md5 } = require('../scripts/helpers');
|
|
const path = require('path');
|
|
controlador.upload = (req, res) => {
|
|
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 destinationPath = path.join(req.app.locals.dir.path_dir, file.name);
|
|
|
|
file.mv(destinationPath, (err) => {
|
|
if (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 });
|
|
}
|
|
// *** 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' });
|
|
} else {
|
|
const file = req.files.file_toUpload;
|
|
const path = req.app.locals.dir.path_dir + '/public/videos/' + file.name;
|
|
console.log(path);
|
|
file.mv(path, (err) => {
|
|
if (err) {
|
|
return res.status(500).send(err);
|
|
}
|
|
return res.send({ status: "success", path: path });
|
|
});
|
|
}
|
|
};
|
|
|
|
//ruta actual
|
|
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 = [];
|
|
// ¡CORRECCIÓN AQUÍ! Usa 'dir' directamente, sin añadir '/public/files/'
|
|
var files = fs.readdirSync(dir, { withFileTypes: true });
|
|
|
|
files.forEach(function (arch, idx) {
|
|
// 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;
|
|
}
|
|
|
|
|
|
controlador.login_cloud = (req, res) => {
|
|
res.render('login_cloud', {
|
|
token: "pfx00168224"
|
|
});
|
|
};
|
|
//ojo la var locals esta en req
|
|
//ejmp: req.app.locals
|
|
controlador.cloud_panel = (req, res, next) => {
|
|
console.log(req.body);
|
|
var pwd = stringTo_md5(req.body.password);
|
|
req.getConnection((err, conn) => {
|
|
conn.query(`SELECT * FROM usuarios WHERE n_sesion = ? and clave=?`, [req.body.usuario, pwd], (err, rows) => {
|
|
if (err) {
|
|
//res.json(err);
|
|
res.render('login_cloud', { token: "error" });
|
|
} else {
|
|
try {
|
|
if (rows.length > 0) {
|
|
//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
|
|
});
|
|
|
|
console.log(rows);
|
|
//res.render('app_pedidos');
|
|
}else { // Agrega un else para cuando no hay resultados en la consulta
|
|
res.render('login_cloud', { msg: "Usuario o contraseña incorrectos." });
|
|
}
|
|
} catch (e) {
|
|
res.render('login_cloud',{msg:e.toString()});
|
|
next(e);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
module.exports = controlador;
|