From 615ed200060ef6571099886cebb7503078a9bfdf Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Wed, 27 Aug 2008 20:29:45 +0000 Subject: [PATCH] =?UTF-8?q?Fixed=20#7769:=20Added=20a=20couple=20missing?= =?UTF-8?q?=20file=20methods=20to=20`TemporaryUploadedFile`.=20Thanks,=20M?= =?UTF-8?q?ads=20S=C3=BClau=20J=C3=B8rgensen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.djangoproject.com/svn/django/trunk@8634 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/files/uploadedfile.py | 27 ++++++++++++++------------- 1 file 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): """