diff --git a/apps/backend/app/routers/reports.py b/apps/backend/app/routers/reports.py index 5b80ab8e..80f3f954 100644 --- a/apps/backend/app/routers/reports.py +++ b/apps/backend/app/routers/reports.py @@ -9,6 +9,7 @@ from pyaslreport import generate_report, get_bids_metadata from pyaslreport.enums import ModalityTypeValues from fastapi.responses import FileResponse +from starlette.background import BackgroundTask from weasyprint import HTML from app.utils.report_template import render_report_html from app.utils.lib import default_serializer, save_upload, remove_dir @@ -129,5 +130,10 @@ async def download_pdf(report_data: dict): with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp: HTML(string=html_content).write_pdf(tmp.name) tmp_path = tmp.name - return FileResponse(tmp_path, media_type="application/pdf", filename="report.pdf") + return FileResponse( + tmp_path, + media_type="application/pdf", + filename="report.pdf", + background=BackgroundTask(os.unlink, tmp_path) + )