diff options
| author | ShingenPizza <19253513+ShingenPizza@users.noreply.github.com> | 2019-05-17 12:07:27 +0200 |
|---|---|---|
| committer | Carlton Gibson <carlton.gibson@noumenal.es> | 2019-05-17 12:07:27 +0200 |
| commit | de4832c49b8a8cf00b2d602ab4d10c4ca69627bd (patch) | |
| tree | 241c7e3a07366d29b73301db9db06d42ce407ab9 /django/http | |
| parent | 5c19274643dacc0a16e26634aa5dc34bd11a7077 (diff) | |
Fixed #30196 -- Made FileResponse set Content-Disposition inline if filename is available.
Diffstat (limited to 'django/http')
| -rw-r--r-- | django/http/response.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/django/http/response.py b/django/http/response.py index a9ede09dd9..04efbd6bef 100644 --- a/django/http/response.py +++ b/django/http/response.py @@ -436,15 +436,17 @@ class FileResponse(StreamingHttpResponse): else: self['Content-Type'] = 'application/octet-stream' - if self.as_attachment: - filename = self.filename or os.path.basename(filename) - if filename: - try: - filename.encode('ascii') - file_expr = 'filename="{}"'.format(filename) - except UnicodeEncodeError: - file_expr = "filename*=utf-8''{}".format(quote(filename)) - self['Content-Disposition'] = 'attachment; {}'.format(file_expr) + filename = self.filename or os.path.basename(filename) + if filename: + disposition = 'attachment' if self.as_attachment else 'inline' + try: + filename.encode('ascii') + file_expr = 'filename="{}"'.format(filename) + except UnicodeEncodeError: + file_expr = "filename*=utf-8''{}".format(quote(filename)) + self['Content-Disposition'] = '{}; {}'.format(disposition, file_expr) + elif self.as_attachment: + self['Content-Disposition'] = 'attachment' class HttpResponseRedirectBase(HttpResponse): |
