0052c59f81
Root cause: FileReader.readAsDataURL() loads the entire file into memory as a base64 string. With 50+ iPhone photos (3-12 MB each), this exceeds iOS Safari's per-tab memory limit and freezes the tab. Changes: - Replace readAsDataURL with URL.createObjectURL(file) — zero-copy file reference, no memory bloat (static/index.html) - Reduce batch size from 4 to 2 — gentler on memory-constrained devices - Add URL.revokeObjectURL() on reset — prevent blob URL leaks - Add HEIC/HEIF support to server.py — iPhone format compatibility Closes #1
2.4 MiB
2.4 MiB