mirror of https://github.com/django/django.git
Fixed #19006 - Quoted filenames in Content-Disposition header.
This commit is contained in:
parent
1c03b23567
commit
234ca6c61d
|
@ -21,7 +21,7 @@ Here's an example::
|
|||
def some_view(request):
|
||||
# Create the HttpResponse object with the appropriate CSV header.
|
||||
response = HttpResponse(mimetype='text/csv')
|
||||
response['Content-Disposition'] = 'attachment; filename=somefilename.csv'
|
||||
response['Content-Disposition'] = 'attachment; filename="somefilename.csv"'
|
||||
|
||||
writer = csv.writer(response)
|
||||
writer.writerow(['First row', 'Foo', 'Bar', 'Baz'])
|
||||
|
@ -93,7 +93,7 @@ Here's an example, which generates the same CSV file as above::
|
|||
def some_view(request):
|
||||
# Create the HttpResponse object with the appropriate CSV header.
|
||||
response = HttpResponse(mimetype='text/csv')
|
||||
response['Content-Disposition'] = 'attachment; filename=somefilename.csv'
|
||||
response['Content-Disposition'] = 'attachment; filename="somefilename.csv"'
|
||||
|
||||
# The data is hard-coded here, but you could load it from a database or
|
||||
# some other source.
|
||||
|
|
|
@ -52,7 +52,7 @@ Here's a "Hello World" example::
|
|||
def some_view(request):
|
||||
# Create the HttpResponse object with the appropriate PDF headers.
|
||||
response = HttpResponse(mimetype='application/pdf')
|
||||
response['Content-Disposition'] = 'attachment; filename=somefilename.pdf'
|
||||
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
|
||||
|
||||
# Create the PDF object, using the response object as its "file."
|
||||
p = canvas.Canvas(response)
|
||||
|
@ -87,7 +87,7 @@ mention:
|
|||
the PDF using whatever program/plugin they've been configured to use for
|
||||
PDFs. Here's what that code would look like::
|
||||
|
||||
response['Content-Disposition'] = 'filename=somefilename.pdf'
|
||||
response['Content-Disposition'] = 'filename="somefilename.pdf"'
|
||||
|
||||
* Hooking into the ReportLab API is easy: Just pass ``response`` as the
|
||||
first argument to ``canvas.Canvas``. The ``Canvas`` class expects a
|
||||
|
@ -121,7 +121,7 @@ Here's the above "Hello World" example rewritten to use :mod:`io`::
|
|||
def some_view(request):
|
||||
# Create the HttpResponse object with the appropriate PDF headers.
|
||||
response = HttpResponse(mimetype='application/pdf')
|
||||
response['Content-Disposition'] = 'attachment; filename=somefilename.pdf'
|
||||
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
|
||||
|
||||
buffer = BytesIO()
|
||||
|
||||
|
|
|
@ -590,7 +590,7 @@ To tell the browser to treat the response as a file attachment, use the
|
|||
this is how you might return a Microsoft Excel spreadsheet::
|
||||
|
||||
>>> response = HttpResponse(my_data, content_type='application/vnd.ms-excel')
|
||||
>>> response['Content-Disposition'] = 'attachment; filename=foo.xls'
|
||||
>>> response['Content-Disposition'] = 'attachment; filename="foo.xls"'
|
||||
|
||||
There's nothing Django-specific about the ``Content-Disposition`` header, but
|
||||
it's easy to forget the syntax, so we've included it here.
|
||||
|
|
Loading…
Reference in New Issue