diff options
| author | Alex Vandiver <alex@chmrr.net> | 2022-11-30 15:09:49 -0500 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-12-05 13:08:00 +0100 |
| commit | cbce427c17b66faec7ced0639346dc6905a498f9 (patch) | |
| tree | 894b0990050dcf94c36010838717dd96351fbcc5 /django/http | |
| parent | 3d3e955efaaeb4cc968e522592c5c1e47bdc72c4 (diff) | |
Fixed #34194 -- Added django.utils.http.content_disposition_header().
Diffstat (limited to 'django/http')
| -rw-r--r-- | django/http/response.py | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/django/http/response.py b/django/http/response.py index bb94e81263..3c281f3dd0 100644 --- a/django/http/response.py +++ b/django/http/response.py @@ -8,7 +8,7 @@ import sys import time from email.header import Header from http.client import responses -from urllib.parse import quote, urlparse +from urllib.parse import urlparse from django.conf import settings from django.core import signals, signing @@ -18,7 +18,7 @@ from django.http.cookie import SimpleCookie from django.utils import timezone from django.utils.datastructures import CaseInsensitiveMapping from django.utils.encoding import iri_to_uri -from django.utils.http import http_date +from django.utils.http import content_disposition_header, http_date from django.utils.regex_helper import _lazy_re_compile _charset_from_content_type_re = _lazy_re_compile( @@ -569,20 +569,10 @@ class FileResponse(StreamingHttpResponse): else: self.headers["Content-Type"] = "application/octet-stream" - if filename: - disposition = "attachment" if self.as_attachment else "inline" - try: - filename.encode("ascii") - file_expr = 'filename="{}"'.format( - filename.replace("\\", "\\\\").replace('"', r"\"") - ) - except UnicodeEncodeError: - file_expr = "filename*=utf-8''{}".format(quote(filename)) - self.headers["Content-Disposition"] = "{}; {}".format( - disposition, file_expr - ) - elif self.as_attachment: - self.headers["Content-Disposition"] = "attachment" + if content_disposition := content_disposition_header( + self.as_attachment, filename + ): + self.headers["Content-Disposition"] = content_disposition class HttpResponseRedirectBase(HttpResponse): |
