From cdb50bde6507b5f74e660231e7a85d0f5953daef Mon Sep 17 00:00:00 2001 From: Safwan Samsudeen Date: Fri, 20 Feb 2026 14:44:44 +0530 Subject: [PATCH] fix: use actual file name for private files --- frappe/utils/response.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frappe/utils/response.py b/frappe/utils/response.py index ba4a6f7979..5fdd459c95 100644 --- a/frappe/utils/response.py +++ b/frappe/utils/response.py @@ -295,15 +295,15 @@ def download_private_file(path: str) -> Response: raise Forbidden(_("You don't have permission to access this file")) make_access_log(doctype="File", document=file.name, file_type=os.path.splitext(path)[-1][1:]) - return send_private_file(path.split("/private", 1)[1]) + return send_private_file(path.split("/private", 1)[1], filename=file.file_name) FORCE_DOWNLOAD_EXTENSIONS = (".svg", ".html", ".htm", ".xml") -def send_private_file(path: str) -> Response: +def send_private_file(path: str, filename: str | None = None) -> Response: path = os.path.join(frappe.local.conf.get("private_path", "private"), path.strip("/")) - filename = os.path.basename(path) + filename = filename or os.path.basename(path) extension = os.path.splitext(path)[1] as_attachment = extension.lower() in FORCE_DOWNLOAD_EXTENSIONS @@ -329,7 +329,7 @@ def send_private_file(path: str) -> Response: environ=frappe.local.request.environ, conditional=True, as_attachment=as_attachment, - download_name=filename if as_attachment else None, + download_name=filename, ) return response