fix(request): parse_multipart_form should return RequestParameters
I have this code: ``` form = FileForm(request.files) ``` and it raise error because the `request.files` is `dict` but `RequestParameters` is expected =/
This commit is contained in:
parent
aaee40aabd
commit
0e9819fba1
|
@ -134,8 +134,8 @@ def parse_multipart_form(body, boundary):
|
||||||
:param boundary: Bytes multipart boundary
|
:param boundary: Bytes multipart boundary
|
||||||
:return: fields (dict), files (dict)
|
:return: fields (dict), files (dict)
|
||||||
"""
|
"""
|
||||||
files = {}
|
files = RequestParameters()
|
||||||
fields = {}
|
fields = RequestParameters()
|
||||||
|
|
||||||
form_parts = body.split(boundary)
|
form_parts = body.split(boundary)
|
||||||
for form_part in form_parts[1:-1]:
|
for form_part in form_parts[1:-1]:
|
||||||
|
@ -166,9 +166,16 @@ def parse_multipart_form(body, boundary):
|
||||||
|
|
||||||
post_data = form_part[line_index:-4]
|
post_data = form_part[line_index:-4]
|
||||||
if file_name or file_type:
|
if file_name or file_type:
|
||||||
files[field_name] = File(
|
file = File(type=file_type, name=file_name, body=post_data)
|
||||||
type=file_type, name=file_name, body=post_data)
|
if field_name in files:
|
||||||
|
files[field_name].append(file)
|
||||||
|
else:
|
||||||
|
files[field_name] = [file]
|
||||||
else:
|
else:
|
||||||
fields[field_name] = post_data.decode('utf-8')
|
value = post_data.decode('utf-8')
|
||||||
|
if field_name in fields:
|
||||||
|
fields[field_name].append(value)
|
||||||
|
else:
|
||||||
|
fields[field_name] = [value]
|
||||||
|
|
||||||
return fields, files
|
return fields, files
|
||||||
|
|
Loading…
Reference in New Issue
Block a user