diff options
author | Jessica Tallon <jessica@megworld.co.uk> | 2014-04-04 12:25:20 -0500 |
---|---|---|
committer | Jessica Tallon <jessica@megworld.co.uk> | 2014-07-22 23:13:15 +0100 |
commit | 41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81 (patch) | |
tree | be69238d05283773197116d37fe9b47a47f58f9e | |
parent | 1304a28fa75ff76313e2dcb50d25a87be5b2de95 (diff) | |
download | mediagoblin-41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81.tar.lz mediagoblin-41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81.tar.xz mediagoblin-41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81.zip |
Fix image upload problem in API
-rw-r--r-- | mediagoblin/federation/views.py | 8 | ||||
-rw-r--r-- | mediagoblin/media_types/image/__init__.py | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/mediagoblin/federation/views.py b/mediagoblin/federation/views.py index 5ae7754c..7107f4bc 100644 --- a/mediagoblin/federation/views.py +++ b/mediagoblin/federation/views.py @@ -1,5 +1,6 @@ import json import io +import mimetypes from werkzeug.datastructures import FileStorage @@ -56,14 +57,17 @@ def uploads(request): request.user = requested_user[0] if request.method == "POST": # Wrap the data in the werkzeug file wrapper + mimetype = request.headers.get("Content-Type", "application/octal-stream") + filename = mimetypes.guess_all_extensions(mimetype) + filename = 'unknown' + filename[0] if filename else filename file_data = FileStorage( stream=io.BytesIO(request.data), - filename=request.args.get("qqfile", "unknown"), + filename=filename, content_type=request.headers.get("Content-Type", "application/octal-stream") ) # Find media manager - media_type, media_manager = sniff_media(file_data) + media_type, media_manager = sniff_media(file_data, filename) entry = new_upload_entry(request.user) if hasattr(media_manager, "api_upload_request"): return media_manager.api_upload_request(request, file_data, entry) diff --git a/mediagoblin/media_types/image/__init__.py b/mediagoblin/media_types/image/__init__.py index ae0bfd11..7b9296fe 100644 --- a/mediagoblin/media_types/image/__init__.py +++ b/mediagoblin/media_types/image/__init__.py @@ -72,7 +72,7 @@ class ImageMediaManager(MediaManagerBase): queue_file = prepare_queue_task(request.app, entry, file_data.filename) with queue_file: queue_file.write(request.data) - + entry.save() feed_url = request.urlgen( |