From eec39aeeecbeb43d07d85504a3642d36f5d975d9 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Wed, 2 Jul 2014 07:26:16 -0500 Subject: [PATCH] smarter upload of binary data --- VERSION | 2 +- gluon/dal.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 935a24c9..368f4ca0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.9.5-trunk+timestamp.2014.07.02.03.00.34 +Version 2.9.5-trunk+timestamp.2014.07.02.07.25.19 diff --git a/gluon/dal.py b/gluon/dal.py index ebc80f2e..ac9de438 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -9223,9 +9223,13 @@ class Table(object): for field in self: if field.type == 'upload' and field.name in fields: value = fields[field.name] - if value is not None and not isinstance(value, str): + if not value in (None,{}) and not isinstance(value, str): if hasattr(value, 'file') and hasattr(value, 'filename'): new_name = field.store(value.file, filename=value.filename) + elif (isinstance(value,dict) and + 'data' in value and 'filename' in value): + stream = StringIO.StringIO(value['data']) + new_name = field.store(stream, filename=value['filename']) elif hasattr(value, 'read') and hasattr(value, 'name'): new_name = field.store(value, filename=value.name) else: