[Zope-Checkins] CVS: Packages/OFS - Image.py:1.145.2.13
Sidnei da Silva
sidnei at enfoldsystems.com
Wed Oct 12 17:27:07 EDT 2005
Update of /cvs-repository/Packages/OFS
In directory cvs.zope.org:/tmp/cvs-serv12347/lib/python/OFS
Modified Files:
Tag: Zope-2_7-branch
Image.py
Log Message:
- 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().
=== Packages/OFS/Image.py 1.145.2.12 => 1.145.2.13 ===
--- Packages/OFS/Image.py:1.145.2.12 Fri Jun 3 12:15:00 2005
+++ Packages/OFS/Image.py Wed Oct 12 17:27:06 2005
@@ -218,7 +218,7 @@
return True
ranges = HTTPRangeSupport.expandRanges(ranges, self.size)
-
+
if len(ranges) == 1:
# Easy case, set extra header and return partial set.
start, end = ranges[0]
@@ -401,10 +401,10 @@
return result
self.ZCacheable_set(None)
-
+
data=self.data
if type(data) is type(''):
- RESPONSE.setBase(None)
+ RESPONSE.setBase(None)
return data
while data is not None:
@@ -597,6 +597,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:
@@ -605,9 +607,19 @@
# 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')
More information about the Zope-Checkins
mailing list