Log message for revision 39108: - OFS.Image.manage_FTPget() would str() it's .data attribute, potentially loading the whole file in memory as a string. Changed to use RESPONSE.write() iterating through the Pdata chain, just like index_html().
Changed: U Zope/branches/Zope-2_8-branch/doc/CHANGES.txt U Zope/branches/Zope-2_8-branch/lib/python/OFS/Image.py -=- Modified: Zope/branches/Zope-2_8-branch/doc/CHANGES.txt =================================================================== --- Zope/branches/Zope-2_8-branch/doc/CHANGES.txt 2005-10-12 21:04:13 UTC (rev 39107) +++ Zope/branches/Zope-2_8-branch/doc/CHANGES.txt 2005-10-12 21:33:53 UTC (rev 39108) @@ -22,7 +22,7 @@ - Collector #1233: port ZOPE_CONFIG patch from Zope 2.7 to Zope 2.8 - after Zope 2.8.1 + after Zope 2.8.1 Features added @@ -33,6 +33,11 @@ Bugs Fixed + - OFS.Image.manage_FTPget() would str() it's .data attribute, + potentially loading the whole file in memory as a + string. Changed to use RESPONSE.write() iterating through the + Pdata chain, just like index_html(). + - When PageTemplates have a syntax error, show the traceback output in the rendered error message. @@ -44,7 +49,7 @@ character set used to encode unicode data that reaches ZPublisher without any specified encoding. - - disabled ".. include" directive for all the ZReST product and the + - disabled ".. include" directive for all the ZReST product and the reStructuredText package - Collector #1888: Adjust call to 'engine.translate' to accomodate @@ -57,7 +62,7 @@ supporting 'debug' argument passed to 'ZPublisher.Test.publish_module'. - - Collector #1879: applied patch by Dieter Maurer to fix a bug in + - Collector #1879: applied patch by Dieter Maurer to fix a bug in ac_aquire() ignoring the default argument - Collector #1864, #1906: fixed header normalization in appendHeader() @@ -83,7 +88,7 @@ - Collector #1877: skel/Products/README.txt inappropriately copied from CMF. - - Collector #1871: Applied patch to support lists with records using + - Collector #1871: Applied patch to support lists with records using ZTUtils.make_query() - AccessControl: creating a new user through "zpasswd inituser" did not @@ -99,11 +104,11 @@ - DateIndex now properly removes documents from both indexes if the value is None - - Collector #1888: Some parts of the TALInterpreter would not pass a - default when translating, yet expect a string back. This would cause - an error (usually "NoneType has no attribute 'replace'") in the case + - Collector #1888: Some parts of the TALInterpreter would not pass a + default when translating, yet expect a string back. This would cause + an error (usually "NoneType has no attribute 'replace'") in the case the message was not translated. - + Zope 2.8.1 (2005/08/11) Features added @@ -158,11 +163,11 @@ in Products/BTreeFolder2 (CMFCore will include it after 1.5, with an appropriate module alias for backward compatibility). - - Replaced all transaction.commit(1) calls by transaction.savepoint() + - Replaced all transaction.commit(1) calls by transaction.savepoint() - Collector #1832: UnIndex swallowed ConflictErrors. - - Collector #1815: ZCTextIndex accepts (again) sequences of strings to + - Collector #1815: ZCTextIndex accepts (again) sequences of strings to be indexed. - Collector #1812: Fixed key error in ZSQL ZMI/Test @@ -179,7 +184,7 @@ - Collector #1808: manage_convertIndexes no longer tries to change the index types causing some trouble with CMF. - - manage_convertIndexes did not treat DateRangeIndexes and PathIndexes + - manage_convertIndexes did not treat DateRangeIndexes and PathIndexes properly. - Updated Zope X3 to bugfix release 3.0.1 @@ -200,7 +205,7 @@ - Collector #1803: Fixed InitializeClass for some corner case. - - Collector #1798, issue 1: ZopeTestCase no longer tries to + - Collector #1798, issue 1: ZopeTestCase no longer tries to install products that were installed by Zope during startup. - Collector #1799: Avoid lying about parent's refcount when Modified: Zope/branches/Zope-2_8-branch/lib/python/OFS/Image.py =================================================================== --- Zope/branches/Zope-2_8-branch/lib/python/OFS/Image.py 2005-10-12 21:04:13 UTC (rev 39107) +++ Zope/branches/Zope-2_8-branch/lib/python/OFS/Image.py 2005-10-12 21:33:53 UTC (rev 39108) @@ -594,6 +594,8 @@ def manage_FTPget(self): """Return body for ftp.""" + RESPONSE = self.REQUEST.RESPONSE + if self.ZCacheable_isCachingEnabled(): result = self.ZCacheable_get(default=None) if result is not None: @@ -602,11 +604,20 @@ # from FileCacheManager. # the content-length is required here by HTTPResponse, even # though FTP doesn't use it. - self.REQUEST.RESPONSE.setHeader('Content-Length', self.size) + RESPONSE.setHeader('Content-Length', self.size) return result - return str(self.data) + data = self.data + if type(data) is type(''): + RESPONSE.setBase(None) + return data + while data is not None: + RESPONSE.write(data.data) + data = data.next + + return '' + manage_addImageForm=DTMLFile('dtml/imageAdd',globals(), Kind='Image',kind='image') def manage_addImage(self, id, file, title='', precondition='', content_type='', _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins