-
-
Notifications
You must be signed in to change notification settings - Fork 779
Closed
Description
Description
Connexion return 500 error.
My swagger scheme:
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileName:
type: string
format: binary
Handler:
async def create_task(self, fileName, **request):
print(fileName)
Html form:
<form method="post" enctype="multipart/form-data" multipart action="">
<label for="fileName">Choose file to upload</label>
<input type="file" id="fileName" name="fileName">
<button>Submit</button>
</form>
Expected behaviour
FileField(name='fileName', filename='script.sql', file=<_io.BufferedRandom name=12>, content_type='application/octet-stream', headers=<CIMultiDictProxy('Content-Disposition': 'form-data; name="fileName"; filename="script.sql"', 'Content-Type': 'application/octet-stream')>)
Actual behaviour
File "/lib64/python3.6/site-packages/aiohttp/web_protocol.py", line 418, in start
resp = await task
File "/lib64/python3.6/site-packages/aiohttp/web_app.py", line 458, in _handle
resp = await handler(request)
File "lib64/python3.6/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/lib64/python3.6/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/lib64/python3.6/site-packages/connexion/apis/aiohttp_api.py", line 32, in oauth_problem_middleware
response = yield from handler(request)
File "/lib64/python3.6/site-packages/connexion/decorators/coroutine_wrappers.py", line 21, in wrapper
connexion_response = function(connexion_request)
File "/lib64/python3.6/site-packages/connexion/decorators/uri_parsing.py", line 143, in wrapper
response = function(request)
File "/lib64/python3.6/site-packages/connexion/decorators/validation.py", line 147, in wrapper
data.update(dict.fromkeys(request.files, '')) # validator expects string..
AttributeError: 'bytes' object has no attribute 'update'```
### Additional info:
This problem was solved with patching aiohttp_api.AioHttpApi.get_request method.
-Python 3.7.2
-Version: 2.2.0
ddurham2, nielsboecker, daxartio, gitttt, aneuway2 and 1 more