fix of the json upload format
This commit is contained in:
@@ -151,61 +151,51 @@
|
||||
|
||||
<script>
|
||||
document.getElementById('uploadForm').addEventListener('submit', async function(e) {
|
||||
e.preventDefault(); // Verhindert das Neuladen der Seite
|
||||
e.preventDefault();
|
||||
|
||||
const form = e.target;
|
||||
const submitBtn = document.getElementById('submitBtn');
|
||||
const statusDiv = document.getElementById('status-message');
|
||||
|
||||
// UI auf "Laden" setzen
|
||||
submitBtn.disabled = true;
|
||||
submitBtn.innerText = 'Wird verarbeitet...';
|
||||
statusDiv.className = 'loading';
|
||||
statusDiv.style.display = 'block';
|
||||
statusDiv.innerHTML = '<div class="spinner"></div> Lade Dateien hoch und verarbeite Bilder... Bitte warten.';
|
||||
|
||||
// FormData sammelt alle Inputs aus dem Formular (csv_file und images)
|
||||
const formData = new FormData(form);
|
||||
|
||||
try {
|
||||
// Sende die Daten an den Flask-Endpoint
|
||||
const response = await fetch('/upload_csv_batch', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
|
||||
// Antwort einmalig als Text auslesen, um sowohl JSON als auch HTML-Fehler abzufangen
|
||||
const responseText = await response.text();
|
||||
|
||||
let result;
|
||||
try {
|
||||
// Versuche, die Antwort als JSON zu lesen
|
||||
result = await response.json();
|
||||
result = JSON.parse(responseText);
|
||||
} catch (jsonError) {
|
||||
// Wenn der Server kein JSON, sondern HTML (z.B. bei einem Python-Crash) sendet
|
||||
const errorText = await response.text();
|
||||
console.error("Server hat kein JSON gesendet. Antwort war:", errorText);
|
||||
throw new Error("Der Server hat einen HTML-Fehler zurückgegeben (Python-Crash oder falscher Pfad). Siehe Konsole.");
|
||||
console.error("Server hat kein JSON gesendet. Antwort war:", responseText);
|
||||
throw new Error("Der Server hat einen HTML-Fehler zurückgegeben (z.B. Nginx 413 Entity Too Large oder Server-Crash). Siehe F12 Konsole.");
|
||||
}
|
||||
|
||||
if (response.ok && result.success) {
|
||||
// Erfolgreicher Upload
|
||||
statusDiv.className = 'success';
|
||||
statusDiv.innerHTML = `
|
||||
<strong>Erfolg!</strong><br>
|
||||
${result.message}
|
||||
`;
|
||||
form.reset(); // Formular nach Erfolg leeren
|
||||
statusDiv.innerHTML = `<strong>Erfolg!</strong><br>${result.message}`;
|
||||
form.reset();
|
||||
} else {
|
||||
// Fehler vom Server (mit JSON-Fehlermeldung)
|
||||
statusDiv.className = 'error';
|
||||
statusDiv.innerHTML = `<strong>Fehler:</strong> ${result.message || 'Ein unbekannter Fehler ist aufgetreten.'}`;
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// Netzwerkfehler oder abgefangener Server-Fehler
|
||||
statusDiv.className = 'error';
|
||||
statusDiv.innerHTML = `<strong>Fehler:</strong> ${error.message}`;
|
||||
console.error('Upload Error:', error);
|
||||
} finally {
|
||||
// UI wieder freigeben
|
||||
submitBtn.disabled = false;
|
||||
submitBtn.innerText = 'Daten hochladen';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user