diff --git a/frontend/src/tools/dateien.jsx b/frontend/src/tools/dateien.jsx index ef689ad..16e5626 100644 --- a/frontend/src/tools/dateien.jsx +++ b/frontend/src/tools/dateien.jsx @@ -122,11 +122,19 @@ export default function Dateien({ toast, mobile }) { const res = await fetch(`/api/tools/dateien/${file.id}/download`, { headers: { Authorization: `Bearer ${localStorage.getItem('sk_token')}` } }); - if (!res.ok) { toast('Download fehlgeschlagen','error'); return; } + if (!res.ok) { + const err = await res.json().catch(()=>({error:'Download fehlgeschlagen'})); + toast(err.error || 'Download fehlgeschlagen', 'error'); return; + } const blob = await res.blob(); const url = URL.createObjectURL(blob); - Object.assign(document.createElement('a'),{href:url,download:file.originalname}).click(); - URL.revokeObjectURL(url); + const a = document.createElement('a'); + a.href = url; + a.download = file.originalname; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + setTimeout(() => URL.revokeObjectURL(url), 1000); } catch(e) { toast(e.message,'error'); } };