From e425c643f54cd13a1ad492352e014ed510379e69 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 10 Feb 2025 16:42:28 +1100 Subject: [PATCH] Encode the file name when adding it to the 'link' attribute of each file. This lets the file be downloaded if it has a special character e.g #. --- cli/onionshare_cli/web/send_base_mode.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py index 5d6af460..78fda9ba 100644 --- a/cli/onionshare_cli/web/send_base_mode.py +++ b/cli/onionshare_cli/web/send_base_mode.py @@ -170,18 +170,18 @@ class SendBaseModeWeb: if is_dir: if add_trailing_slash: dirs.append( - {"link": os.path.join(f"/{path}", filename, ""), "basename": filename} + {"link": os.path.join(f"/{path}", quote(filename), ""), "basename": filename} ) else: dirs.append( - {"link": os.path.join(f"/{path}", filename), "basename": filename} + {"link": os.path.join(f"/{path}", quote(filename)), "basename": filename} ) else: size = os.path.getsize(this_filesystem_path) size_human = self.common.human_readable_filesize(size) files.append( { - "link": os.path.join(f"/{path}", filename), + "link": os.path.join(f"/{path}", quote(filename)), "basename": filename, "size_human": size_human, }