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 20948 Form ImageField, MemoryFileUploadHandler and reading content of the InMemoryUploadedFile p_hrechyshkin@… "There is a form with ImageField, which returns validation error ""Upload a valid image. The file you uploaded was either not an image or a corrupted image."" In my view I am trying to read image file content: image = self.request.FILES.get('image') if image: content = """".join(image.chunks()) Validation error doesn't occur if I comment line with image.chunks(), also it isn't showed if I remove ""django.core.files.uploadhandler.MemoryFileUploadHandler"" from FILE_UPLOAD_HANDLERS setting. So the reason could be in file object created by MemoryFileUploadHandler (InMemoryUploadedFile). My guess was it could be that after read there is no call file.seek(0) which set file reader pointer to the begging of the file. It could be ImageFile.to_python assumes that pointer set to the beginning. In ImageField.to_python I have added data.file.seek(0) before file = StringIO(data.read()) and I haven't got image validation error after that. Is it proper behavior? Or ImageField shouldn't assume that file haven't been read? Or InMemoryUploadedFile should call file.seek(0) after chunks iterator ended its work?" Uncategorized closed Python 2 1.4 Normal invalid file upload p_hrechyshkin@… Unreviewed 0 0 0 0 0 0