aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJessica Tallon <jessica@megworld.co.uk>2014-04-04 12:25:20 -0500
committerJessica Tallon <jessica@megworld.co.uk>2014-07-22 23:13:15 +0100
commit41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81 (patch)
treebe69238d05283773197116d37fe9b47a47f58f9e
parent1304a28fa75ff76313e2dcb50d25a87be5b2de95 (diff)
downloadmediagoblin-41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81.tar.lz
mediagoblin-41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81.tar.xz
mediagoblin-41599bf23c7bfe9b1b6fe88ef3a05d6bac987f81.zip
Fix image upload problem in API
-rw-r--r--mediagoblin/federation/views.py8
-rw-r--r--mediagoblin/media_types/image/__init__.py2
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(