diff options
Diffstat (limited to 'mediagoblin/api/views.py')
-rw-r--r-- | mediagoblin/api/views.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/mediagoblin/api/views.py b/mediagoblin/api/views.py index 74181fde..dfa9dfa2 100644 --- a/mediagoblin/api/views.py +++ b/mediagoblin/api/views.py @@ -115,8 +115,16 @@ def uploads_endpoint(request): ) mimetype = request.headers["Content-Type"] - filename = mimetypes.guess_all_extensions(mimetype) - filename = 'unknown' + filename[0] if filename else filename + + if "X-File-Name" in request.headers: + filename = request.headers["X-File-Name"] + else: + filenames = sorted(mimetypes.guess_all_extensions(mimetype)) + if not filenames: + return json_error('Unknown mimetype: {}'.format(mimetype), + status=415) + filename = 'unknown{0}'.format(filenames[0]) + file_data = FileStorage( stream=io.BytesIO(request.data), filename=filename, |