I'm seeing this same issue with a slight twist... When uploading a files >2.5MB via a regular Django view or the Django Admin, the file uploads and the temp copy in /tmp is removed. When I upload using django-rest-framework via POST, the file uploads but the temporary copy remains in /tmp. I posted on the django-rest-framework but I'm not sure the issue is in the framework. Here's that post with some more info:
https://groups.google.com/forum/?fromgroups=#!topic/django-rest-framework/AdfJuZ6ay-0 Hopefully someone can clarify how the Django code is working, because I've seen some odd behaviour. Quoting the Django relevant info from the above post: Also, there's something in the Django code I do not understand. The only > place I've found where the temporary file is moved to it's final location > is within django/core/files/storage.py. This is in > FileSystemStorage._save(): > # This file has a file path that we can move. > if hasattr(content, 'temporary_file_path'): > file_move_safe(content.temporary_file_path(), > full_path) > content.close() > When I set a breakdance point on the file_move_safe method call, it never > gets triggered even when Django removes the temp file successfully using > the ModelForm regular view. Eeks! If I set the break point on the if > statement, code execution stops. Then I can see the 'temporary_file_path' > attribute is not present, explaining why the method wasn't called, but not > why the file was removed. Double-eeks! Even stranger is that just by > setting the break point on the if statement, the temp file gets stuck in > /tmp using the ModelForm based method...have I found a true Heisenbug? I > digress, this part is more a question for django-users, and I plan on > posting there so I have a better understanding of what is happening. I'm overriding clean() in my model to do some extra validation, and I can see the TemporaryUploadedFile within clean and it is open. However, if I try to close the file at the end of clean I get a Value Error stating "I/O operation on closed file". So I tried overriding the save method to call the parent save and then hopefully close or delete the temp file, but the FileField.file is no longer the temp version there. Any ideas? It was mentioned to write a custom file upload handler, but I'm a little unclear on how to do this or whether I could safely delete the temp file from there. Thanks, Scott On Monday, March 4, 2013 12:12:00 PM UTC-5, msoulier wrote: > > On 04/03/13 Emiliano Dalla Verde Marcozzi said: > > > method from my own class that subclass TemporaryFileUploadHandler and do > > something like: > > Yeah, I'm doing that, but it seems odd to me that the handler leaves the > file > around, when it's supposed to be temporary, no? > > Mike > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.