diff --git a/swh/web/browse/views/content.py b/swh/web/browse/views/content.py --- a/swh/web/browse/views/content.py +++ b/swh/web/browse/views/content.py @@ -5,6 +5,7 @@ import difflib import json +import mimetypes from distutils.util import strtobool @@ -48,8 +49,14 @@ if not filename: filename = '%s_%s' % (algo, checksum) - if content_data['mimetype'].startswith('text/') or \ - content_data['mimetype'] == 'inode/x-empty': + if content_data['mimetype'].startswith('text/'): + response = HttpResponse(content_data['raw_data'], + content_type="text/plain") + # Guess file extension by detected mime types + if content_data['mimetype'] != "text/plain": + filename += mimetypes.guess_extension(content_data['mimetype']) + response['Content-disposition'] = 'filename=%s' % filename + elif content_data['mimetype'] == 'inode/x-empty': response = HttpResponse(content_data['raw_data'], content_type="text/plain") response['Content-disposition'] = 'filename=%s' % filename