From af750a6598d53b8a5cb58092dd5b523ea7e967ca Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Sat, 11 Feb 2017 14:19:55 +0100 Subject: Fixed uploading small files. For small files the file attribute is a StringIO object instead of a NamedTemporaryFile. For cStringIO we're not allowed to set the delete attribute, so check wether the object already has a delete attribute before attempting to set it. --- fbin.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fbin.py b/fbin.py index e1c1853..0f91330 100755 --- a/fbin.py +++ b/fbin.py @@ -236,13 +236,15 @@ class Application(object): return self.redirect(environ, start_response, 'l') if not user and not settings.allow_anonymous_uploads: - form['file'].file.delete = True + if hasattr(form['file'].file, 'delete'): + form['file'].file.delete = True start_response('403 Forbidden', [('Content-Type', 'text/plain')]) return ['Anonymous uploads are disabled by the administrator.'] filename = form.getvalue('filename') temp = form['file'].file - temp.delete = False + if hasattr(temp, 'delete'): + temp.delete = False # If the name attribute is missing, assume this is a StringIO object, then create a new temporary file and copy the contents. if not hasattr(temp, 'name'): -- cgit v1.2.3