Index: django/core/files/uploadedfile.py
===================================================================
--- django/core/files/uploadedfile.py	(revision 9791)
+++ django/core/files/uploadedfile.py	(working copy)
@@ -84,13 +84,6 @@
     # Most methods on this object get proxied to NamedTemporaryFile.
     # We can't directly subclass because NamedTemporaryFile is actually a
     # factory function
-    def read(self, *args):          return self._file.read(*args)
-    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()
     def close(self):
         try:
             return self._file.close()
@@ -102,6 +95,28 @@
                 return
             else:
                 raise e
+    def flush(self):                return self._file.flush()
+    def fileno(self):               return self._file.fileno()
+    def isatty(self):               return self._file.isatty()
+    def next(self):                 return self._file.next()
+    def __iter__(self):             return iter(self._file)
+    def read(self, *args):          return self._file.read(*args)
+    def readline(self, *args):      return self._file.readline(*args)
+    def readlines(self, *args):     return self._file.readlines(*args)
+    def xreadlines(self):           return self._file.xreadlines()
+    def seek(self, *args):          return self._file.seek(*args)
+    def tell(self, *args):          return self._file.tell(*args)
+    def truncate(self, *args):      return self._file.truncate(*args)
+    def write(self, *args):         return self._file.write(*args)
+    def writelines(self, *args):    return self._file.writelines(*args)
+    closed = property(lambda me : getattr(me._file, 'closed'))
+    encoding = property(lambda me : getattr(me._file, 'encoding'))
+    errors = property(lambda me : getattr(me._file, 'errors'),
+                      lambda me, val : setattr(me._file, 'errors', val))
+    mode = property(lambda me : getattr(me._file, 'mode'))
+    newlines = property(lambda me : getattr(me._file, 'newlines'))
+    softspace = property(lambda me : getattr(me._file, 'softspace'),
+                         lambda me, val : setattr(me._file, 'softspace', val))
 
 class InMemoryUploadedFile(UploadedFile):
     """
@@ -125,10 +140,29 @@
         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()
+    def close(self):                return self._file.close()
+    def flush(self):                return self._file.flush()
+    def fileno(self):               return self._file.fileno()
+    def isatty(self):               return self._file.isatty()
+    def next(self):                 return self._file.next()
+    def __iter__(self):             return iter(self._file)
+    def read(self, *args):          return self._file.read(*args)
+    def readline(self, *args):      return self._file.readline(*args)
+    def readlines(self, *args):     return self._file.readlines(*args)
+    def xreadlines(self):           return self._file.xreadlines()
+    def seek(self, *args):          return self._file.seek(*args)
+    def tell(self, *args):          return self._file.tell(*args)
+    def truncate(self, *args):      return self._file.truncate(*args)
+    def write(self, *args):         return self._file.write(*args)
+    def writelines(self, *args):    return self._file.writelines(*args)
+    closed = property(lambda me : getattr(me._file, 'closed'))
+    encoding = property(lambda me : getattr(me._file, 'encoding'))
+    errors = property(lambda me : getattr(me._file, 'errors'),
+                      lambda me, val : setattr(me._file, 'errors', val))
+    mode = property(lambda me : getattr(me._file, 'mode'))
+    newlines = property(lambda me : getattr(me._file, 'newlines'))
+    softspace = property(lambda me : getattr(me._file, 'softspace'),
+                         lambda me, val : setattr(me._file, 'softspace', val))
 
 class SimpleUploadedFile(InMemoryUploadedFile):
     """
