fix: ruta doble en local_file al mostrar imagen de orden médica
La BD guarda local_file con 'uploads/media/...' incluido. El código le añadía otro 'uploads/media/' dando ruta doble. - lab_ordenes.php: helper _resolveImg() detecta si el path ya empieza con 'uploads/' y no añade el prefijo de nuevo - enfermero_portal.php: nueva función resImg() con misma lógica, usada en _cardHTML() al renderizar la imagen de la orden
This commit is contained in:
+10
-2
@@ -415,9 +415,9 @@ const portal = {
|
||||
<!-- Orden médica (imagen) -->
|
||||
${item.orden_local_file ? `
|
||||
<div class="mt-2 mb-2">
|
||||
<a href="uploads/media/${esc(item.orden_local_file)}" target="_blank"
|
||||
<a href="${resImg(item.orden_local_file)}" target="_blank"
|
||||
title="Ver orden médica">
|
||||
<img src="uploads/media/${esc(item.orden_local_file)}"
|
||||
<img src="${resImg(item.orden_local_file)}"
|
||||
style="max-width:100%;max-height:180px;border-radius:8px;border:1px solid #ddd;cursor:zoom-in"
|
||||
alt="Orden médica #${item.orden_id}">
|
||||
</a>
|
||||
@@ -563,6 +563,14 @@ function esc(s) {
|
||||
({ '<':'<','>':'>','&':'&','"':'"',"'":''' }[c]));
|
||||
}
|
||||
|
||||
// Resolver ruta de imagen: evita duplicar "uploads/media/"
|
||||
function resImg(f) {
|
||||
if (!f) return '';
|
||||
if (/^https?:\/\//i.test(f)) return esc(f);
|
||||
if (String(f).startsWith('uploads/')) return esc(f);
|
||||
return `uploads/media/${esc(f)}`;
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
portal.init();
|
||||
agendaNueva.init();
|
||||
|
||||
+9
-3
@@ -268,9 +268,15 @@ async function verOrden(id) {
|
||||
}).join('');
|
||||
|
||||
// Imagen de la orden
|
||||
const imgSrc = o.local_file
|
||||
? `uploads/media/${esc(o.local_file)}`
|
||||
: (o.conv_local_file ? `uploads/media/${esc(o.conv_local_file)}` : null);
|
||||
// local_file puede venir con la ruta ya incluida (ej. "uploads/media/2026/02/x.jpg")
|
||||
// o solo con el nombre de archivo — normalizamos para evitar ruta duplicada
|
||||
function _resolveImg(f) {
|
||||
if (!f) return null;
|
||||
if (/^https?:\/\//i.test(f)) return f;
|
||||
if (f.startsWith('uploads/')) return f;
|
||||
return `uploads/media/${f}`;
|
||||
}
|
||||
const imgSrc = _resolveImg(o.local_file) || _resolveImg(o.conv_local_file) || null;
|
||||
|
||||
// Botones de acción según estado
|
||||
const botonesAccion = renderBotones(o);
|
||||
|
||||
Reference in New Issue
Block a user