﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22718	django.core.files.File doesn't handle certain file-like objects (e.g. zipfile.ZipExtFile)	linkjuggler@…	M. Shafiq	"django.core.files.File checks for presence of seek() method before calling in some places but not in others causing problems with file-like objects that do not implement seek (e.g. zipfile.ZipExtFile).

For example, given myapp.models with:

{{{
class ASimpleModel(models.Model):
    a_file_field=models.FileField(upload_to=""docs"") 
}}}

and a zipfile abc.zip containing a file with path ""dir/file.txt"", you get the following:

{{{
>>> from myapp.models import ASimpleModel
>>> from zipfile import ZipFile
>>> from django.core.files import File
>>> zip = ZipFile(""abc.zip"")
>>> zfile = File(zip.open(""dir/file.txt"")
>>> m = ASimpleModel()
>>> m.a_file_field.save(""file.txt"",zfile)
Traceback (most recent call last):
  File ""<console>"", line 1, in <module>
  File ""/usr/lib/python2.7/dist-packages/django/db/models/fields/files.py"", line 90, in save
    self._size = content.size
  File ""/usr/lib/python2.7/dist-packages/django/core/files/base.py"", line 45, in _get_size
    pos = self.file.tell()
UnsupportedOperation: seek
>>> 
}}}"	Bug	closed	File uploads/storage	1.6	Normal	wontfix			Accepted	0	0	0	0	0	0
