Commit 234ca6c6 authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #19006 - Quoted filenames in Content-Disposition header.

parent 1c03b235
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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.
+3 −3
Original line number Diff line number Diff line
@@ -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()

+1 −1
Original line number Diff line number Diff line
@@ -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.