diff --git a/post1.html b/post1.html
index 3f9144a..9aa43e4 100644
--- a/post1.html
+++ b/post1.html
@@ -2509,6 +2509,10 @@
});
if (!res.ok) {
const w = await res.json().catch(() => ({}));
+ /* 404 heisst hier fast immer: der Python-Server laeuft noch in einer
+ Fassung ohne /upload. Die Seite neu zu laden hilft dagegen nicht --
+ serve.py wird nur beim Start eingelesen. */
+ if (res.status === 404) throw new Error("Server kennt /upload nicht · ./serve.sh neu starten");
throw new Error(w.error || ("HTTP " + res.status));
}
const { pfad } = await res.json();
diff --git a/serve.py b/serve.py
index e07988a..317827d 100755
--- a/serve.py
+++ b/serve.py
@@ -133,7 +133,12 @@ class Handler(http.server.SimpleHTTPRequestHandler):
if endung not in BILD_ENDUNGEN:
self._json(400, '{"error":"kein Bildformat"}')
return
- # Aus dem Stamm wird ein unverfaenglicher Dateiname, der Rest faellt weg.
+ # Aus dem Stamm wird ein unverfaenglicher Dateiname. Umlaute werden
+ # umschrieben statt weggeworfen, sonst wird aus "pruefbild" ein
+ # "pr-fbild" und der Name sagt nichts mehr.
+ for a, b in (("ä", "ae"), ("ö", "oe"), ("ü", "ue"), ("Ä", "Ae"),
+ ("Ö", "Oe"), ("Ü", "Ue"), ("ß", "ss")):
+ stamm = stamm.replace(a, b)
stamm = re.sub(r"[^A-Za-z0-9._-]+", "-", stamm).strip("-.") or "bild"
stamm = stamm[:80]