summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2008-08-27 20:29:45 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2008-08-27 20:29:45 +0000
commit615ed200060ef6571099886cebb7503078a9bfdf (patch)
treeb6035c3c1cb64873458a63d2c3c6cd6929cceb46
parent887f778794d23968b9060e35d11065577e12cebe (diff)
Fixed #7769: Added a couple missing file methods to `TemporaryUploadedFile`. Thanks, Mads Sülau Jørgensen.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8634 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/core/files/uploadedfile.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/django/core/files/uploadedfile.py b/django/core/files/uploadedfile.py
index afbcdba0f0..b15f8d535f 100644
--- a/django/core/files/uploadedfile.py
+++ b/django/core/files/uploadedfile.py
@@ -84,8 +84,9 @@ class TemporaryUploadedFile(UploadedFile):
# We can't directly subclass because NamedTemporaryFile is actually a
# factory function
def read(self, *args): return self._file.read(*args)
- def seek(self, offset): return self._file.seek(offset)
+ def seek(self, *args): return self._file.seek(*args)
def write(self, s): return self._file.write(s)
+ def tell(self, *args): return self._file.tell(*args)
def __iter__(self): return iter(self._file)
def readlines(self, size=None): return self._file.readlines(size)
def xreadlines(self): return self._file.xreadlines()
@@ -107,39 +108,39 @@ class InMemoryUploadedFile(UploadedFile):
"""
def __init__(self, file, field_name, name, content_type, size, charset):
super(InMemoryUploadedFile, self).__init__(name, content_type, size, charset)
- self.file = file
+ self._file = file
self.field_name = field_name
- self.file.seek(0)
-
- def seek(self, *args, **kwargs):
- self.file.seek(*args, **kwargs)
+ self._file.seek(0)
def open(self):
- self.seek(0)
-
- def read(self, *args, **kwargs):
- return self.file.read(*args, **kwargs)
+ self._file.seek(0)
def chunks(self, chunk_size=None):
- self.file.seek(0)
+ self._file.seek(0)
yield self.read()
def multiple_chunks(self, chunk_size=None):
# Since it's in memory, we'll never have multiple chunks.
return False
+ # proxy methods to StringIO
+ def read(self, *args): return self._file.read(*args)
+ def seek(self, *args): return self._file.seek(*args)
+ def tell(self, *args): return self._file.tell(*args)
+ def close(self): return self._file.close()
+
class SimpleUploadedFile(InMemoryUploadedFile):
"""
A simple representation of a file, which just has content, size, and a name.
"""
def __init__(self, name, content, content_type='text/plain'):
- self.file = StringIO(content or '')
+ self._file = StringIO(content or '')
self.name = name
self.field_name = None
self.size = len(content or '')
self.content_type = content_type
self.charset = None
- self.file.seek(0)
+ self._file.seek(0)
def from_dict(cls, file_dict):
"""