Code

Ticket #15644: django.core.files.base.File.diff

File django.core.files.base.File.diff, 911 bytes (added by nickname123, 3 years ago)

patch

Line 
1Index: django/core/files/base.py
2===================================================================
3--- django/core/files/base.py   (revision 15876)
4+++ django/core/files/base.py   (working copy)
5@@ -36,8 +36,13 @@
6         if not hasattr(self, '_size'):
7             if hasattr(self.file, 'size'):
8                 self._size = self.file.size
9-            elif os.path.exists(self.file.name):
10+            elif hasattr(self.file, 'name') and os.path.exists(self.file.name):
11                 self._size = os.path.getsize(self.file.name)
12+            elif hasattr(self.file, 'tell') and hasattr(self.file, 'seek'):
13+                pos = self.file.tell()
14+                self.file.seek(0,os.SEEK_END)
15+                self._size = self.file.tell()
16+                self.file.seek(pos)
17             else:
18                 raise AttributeError("Unable to determine the file's size.")
19         return self._size