summaryrefslogtreecommitdiff
path: root/django/http
diff options
context:
space:
mode:
authorShingenPizza <19253513+ShingenPizza@users.noreply.github.com>2019-05-17 12:07:27 +0200
committerCarlton Gibson <carlton.gibson@noumenal.es>2019-05-17 12:07:27 +0200
commitde4832c49b8a8cf00b2d602ab4d10c4ca69627bd (patch)
tree241c7e3a07366d29b73301db9db06d42ce407ab9 /django/http
parent5c19274643dacc0a16e26634aa5dc34bd11a7077 (diff)
Fixed #30196 -- Made FileResponse set Content-Disposition inline if filename is available.
Diffstat (limited to 'django/http')
-rw-r--r--django/http/response.py20
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):