Merge pull request #2060 from wing328/scottrw93_fix_2036

[Python] Fix for Python client upload list of files Issue #2036
This commit is contained in:
wing328
2016-02-07 23:47:36 +08:00
9 changed files with 54 additions and 50 deletions

View File

@@ -117,11 +117,11 @@ class {{classname}}(object):
header_params['{{baseName}}'] = params['{{paramName}}']
{{/headerParams}}
form_params = {}
form_params = []
files = {}
{{#formParams}}
if '{{paramName}}' in params:
{{#notFile}}form_params['{{baseName}}'] = params['{{paramName}}']{{/notFile}}{{#isFile}}files['{{baseName}}'] = params['{{paramName}}']{{/isFile}}
{{#notFile}}form_params.append(('{{baseName}}', params['{{paramName}}'])){{/notFile}}{{#isFile}}files['{{baseName}}'] = params['{{paramName}}']{{/isFile}}
{{/formParams}}
body_params = None

View File

@@ -386,22 +386,23 @@ class ApiClient(object):
:param files: File parameters.
:return: Form parameters with files.
"""
params = {}
params = []
if post_params:
params.update(post_params)
params = post_params
if files:
for k, v in iteritems(files):
if not v:
continue
with open(v, 'rb') as f:
filename = os.path.basename(f.name)
filedata = f.read()
mimetype = mimetypes.\
guess_type(filename)[0] or 'application/octet-stream'
params[k] = tuple([filename, filedata, mimetype])
file_names = v if type(v) is list else [v]
for n in file_names:
with open(n, 'rb') as f:
filename = os.path.basename(f.name)
filedata = f.read()
mimetype = mimetypes.\
guess_type(filename)[0] or 'application/octet-stream'
params.append(tuple([k, tuple([filename, filedata, mimetype])]))
return params