etwist/request.py
changeset 9147 01124cfd4b1f
parent 8930 6a02be304486
child 10662 10942ed172de
--- a/etwist/request.py	Tue Jul 09 15:58:26 2013 +0200
+++ b/etwist/request.py	Mon Jun 24 19:00:40 2013 +0200
@@ -24,15 +24,21 @@
 
 
 class CubicWebTwistedRequestAdapter(CubicWebRequestBase):
+    """ from twisted .req to cubicweb .form
+    req.files are put into .form[<filefield>]
+    """
     def __init__(self, req, vreg, https):
         self._twreq = req
         super(CubicWebTwistedRequestAdapter, self).__init__(
             vreg, https, req.args, headers=req.received_headers)
-        for key, (name, stream) in req.files.iteritems():
-            if name is None:
-                self.form[key] = (name, stream)
-            else:
-                self.form[key] = (unicode(name, self.encoding), stream)
+        for key, name_stream_list in req.files.iteritems():
+            for name, stream in name_stream_list:
+                if name is not None:
+                    name = unicode(name, self.encoding)
+                self.form.setdefault(key, []).append((name, stream))
+            # 3.16.4 backward compat
+            if len(self.form[key]) == 1:
+                self.form[key] = self.form[key][0]
         self.content = self._twreq.content # stream
 
     def http_method(self):