diff --git a/rhodecode/controllers/files.py b/rhodecode/controllers/files.py --- a/rhodecode/controllers/files.py +++ b/rhodecode/controllers/files.py @@ -165,17 +165,17 @@ class FilesController(BaseController): try: repo = ScmModel().get_repo(repo_name) cs = repo.get_changeset(revision) + content_type = ARCHIVE_SPECS[fileformat][0] except ChangesetDoesNotExistError: return _('Unknown revision %s') % revision except EmptyRepositoryError: return _('Empty repository') - except InproperArchiveTypeError: + except (InproperArchiveTypeError, KeyError): return _('Unknown archive type') - fname = '%s-%s%s' % (repo_name, revision, ext) - - response.content_type = ARCHIVE_SPECS[fileformat][0] - response.content_disposition = 'attachment; filename=%s' % fname + response.content_type = content_type + response.content_disposition = 'attachment; filename=%s-%s%s' \ + % (repo_name, revision, ext) return cs.get_chunked_archive(kind=fileformat)