Problema solucionado

El error 422 ocurría porque:

Al continuar una inspección existente, las fotos se cargan como URLs de string
El código intentaba subirlas de nuevo como si fueran archivos File
El backend rechazaba la petición porque no recibía un archivo válido → 422 Unprocessable Entity
La solución:

Verificar si cada elemento en answer.photos es un File o Blob (archivo nuevo)
Solo subir archivos nuevos que aún no están en el servidor
Ignorar URLs de string porque ya están subidas y almacenadas
Ahora al continuar una inspección:

 Las fotos existentes se muestran correctamente (fix anterior)
 No se intentan subir de nuevo (fix actual)
 Solo se suben fotos nuevas que agregues
This commit is contained in:
2025-12-04 09:59:10 -03:00
parent 311d363e31
commit 3bf8b44581

View File

@@ -4395,17 +4395,21 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
if (response.ok) {
const savedAnswer = await response.json()
// Upload photos if any
// Upload photos if any - Solo subir archivos nuevos (File/Blob), no URLs existentes
if (answer.photos.length > 0) {
for (const photoFile of answer.photos) {
const formData = new FormData()
formData.append('file', photoFile)
await fetch(`${API_URL}/api/answers/${savedAnswer.id}/upload`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData
})
// Verificar si es un archivo nuevo y no una URL de foto ya subida
if (photoFile instanceof File || photoFile instanceof Blob) {
const formData = new FormData()
formData.append('file', photoFile)
await fetch(`${API_URL}/api/answers/${savedAnswer.id}/upload`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData
})
}
// Si es string (URL), ya está subida, no hacer nada
}
}