﻿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
33023	InMemoryUploadedFile - opening with context manager multiple time is throwing error	Harsh Bhikadia	nobody	"**What is the issue:**
when ""opening"" the ""uploaded file"" with ""context manager (like `with file.open('rb') as f:`) multiple times it is throwing `ValueError: I/O operation on closed file.` exception

**Explaination**
Digging into the code, I realised that `InMemoryUploadedFile` overrides the `open` method from `File` instance - the implementation just ""seeks to 0"". Since the context manager will call the `close` method on ""exit"". When ""opening"" the file again (with or without context manager) it fails with ""cannot seek(0) of already closed file""


** Potential solution**
- Not sure why the ""open"" method was overridden - if not required then just should remove the ""overridden method""
- or making sure the file is ""re-opened"" (like in `File`) if closed


**To conclude**

Since [https://docs.djangoproject.com/en/3.2/ref/files/file/#django.core.files.File.open the doc on `File`] mentions that it could be used with ""context manager""  - I think this is unexpected behaviour and should be fixed.

I have been using Django for many years but new to contribution/issue reporting, so forgive me when I am being ignorant.

I am interested in fixing this myself if someone here gives me a green signal for it."	Bug	closed	Core (Other)	3.2	Normal	wontfix			Unreviewed	0	0	0	0	0	0
