From 3be5cd5f66bdf82068655b1501dffe1f15607af1 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Sat, 10 Dec 2022 12:39:32 +0100 Subject: [PATCH] :bug: Urlencoding headers for file-downloads --- classquiz/routers/eximport.py | 3 ++- classquiz/routers/quiz.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/classquiz/routers/eximport.py b/classquiz/routers/eximport.py index 3423a46..56758b0 100644 --- a/classquiz/routers/eximport.py +++ b/classquiz/routers/eximport.py @@ -13,6 +13,7 @@ from classquiz.auth import get_current_user from classquiz.config import storage, settings from classquiz.db.models import Quiz, User import gzip +import urllib.parse router = APIRouter() settings = settings() @@ -59,7 +60,7 @@ async def export_quiz(quiz_id: uuid.UUID, user: User = Depends(get_current_user) stream_response(), media_type="application/octet-stream", headers={ - "Content-Disposition": f"attachment;filename={quiz.title.encode('ascii', errors='ignore').decode()}.cqa" + "Content-Disposition": f"attachment;filename={urllib.parse.quote(quiz.title)}.cqa" # noqa: E501 }, ) diff --git a/classquiz/routers/quiz.py b/classquiz/routers/quiz.py index 44f9b85..04f523f 100644 --- a/classquiz/routers/quiz.py +++ b/classquiz/routers/quiz.py @@ -21,6 +21,7 @@ from classquiz.config import redis, settings, storage, meilisearch from classquiz.db.models import Quiz, QuizInput, User, PlayGame from classquiz.kahoot_importer.import_quiz import import_quiz import html +import urllib.parse settings = settings() @@ -270,6 +271,6 @@ async def export_quiz_answers(export_token: str, game_pin: str): iter_file(), media_type="application/vnd.ms-excel", headers={ - "Content-Disposition": f"attachment;filename=ClassQuiz-{quiz.title.encode('ascii', errors='ignore').decode()}-{datetime.now().strftime('%m-%d-%Y')}.xlsx" # noqa: E501 + "Content-Disposition": f"attachment;filename=ClassQuiz-{urllib.parse.quote(quiz.title)}-{datetime.now().strftime('%m-%d-%Y')}.xlsx" # noqa: E501 }, )