Commit c089f70b authored by Brett Cannon's avatar Brett Cannon

Issue #18394: Document that cgi.FieldStorage now cleans up after its

'file' attribute properly in Python 3.4.

Thanks to Marcel Hellkamp for pointing out the oversight.
parent 50c85834
......@@ -142,9 +142,11 @@ If a field represents an uploaded file, accessing the value via the
method reads the entire file in memory as bytes. This may not be what you
want. You can test for an uploaded file by testing either the
:attr:`~FieldStorage.filename` attribute or the :attr:`~FieldStorage.file`
attribute. You can then read the data at leisure from the :attr:`!file`
attribute (the :func:`~io.RawIOBase.read` and :func:`~io.IOBase.readline`
methods will return bytes)::
attribute. You can then read the data from the :attr:`!file`
attribute before it is automatically closed as part of the garbage collection of
the :class:`FieldStorage` instance
(the :func:`~io.RawIOBase.read` and :func:`~io.IOBase.readline` methods will
return bytes)::
fileitem = form["userfile"]
if fileitem.file:
......@@ -176,6 +178,11 @@ actually be instances of the class :class:`MiniFieldStorage`. In this case, the
A form submitted via POST that also has a query string will contain both
:class:`FieldStorage` and :class:`MiniFieldStorage` items.
.. versionchanged:: 3.4
The :attr:`~FieldStorage.file` attribute is automatically closed upon the
garbage collection of the creating :class:`FieldStorage` instance.
Higher Level Interface
----------------------
......
......@@ -1560,6 +1560,13 @@ Changes in the Python API
:issue:`18011`.) Note: this change was also inadvertently applied in Python
3.3.3.
* The :attr:`~cgi.FieldStorage.file` attribute is now automatically closed when
the creating :class:`cgi.FieldStorage` instance is garbage collected. If you
were pulling the file object out separately from the :class:`cgi.FieldStorage`
instance and not keeping the instance alive, then you should either store the
entire :class:`cgi.FieldStorage` instance or read the contents of the file
before the :class:`cgi.FieldStorage` instance is garbage collected.
Changes in the C API
--------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment