diff --git a/arkindex/client/decoders.py b/arkindex/client/decoders.py index 48166e46d0b7ae7c1467085fe26122455b797739..ccd1c8050f6394b5cb57bed4a519b4308215fbf4 100644 --- a/arkindex/client/decoders.py +++ b/arkindex/client/decoders.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- -import cgi import json import os import posixpath import shutil import tempfile +from email.message import EmailMessage from urllib.parse import urlparse from arkindex.compat import DownloadedFile @@ -213,10 +213,11 @@ def _get_filename_from_content_disposition(content_disposition): """ Determine an output filename based on the `Content-Disposition` header. """ - params = value, params = cgi.parse_header(content_disposition) + message = EmailMessage() + message["content-disposition"] = content_disposition + filename = message["content-disposition"].params.get("filename") - if "filename" in params: - filename = params["filename"] + if filename: return _safe_filename(filename) return None