Use Content-Disposition in GetSuggestedFileName()

This commit is contained in:
Tobias Taschner
2018-11-01 17:40:28 +01:00
parent f40e2e64d9
commit 00623291ac

View File

@@ -277,16 +277,29 @@ wxString wxWebResponse::GetSuggestedFileName() const
{ {
wxString suggestedFilename; wxString suggestedFilename;
// TODO: get from Content-Disposition header // Try to determine from Content-Disposition header
wxString contentDisp = GetHeader("Content-Disposition");
wxURI uri(GetURL()); wxString disp;
if ( uri.HasPath() ) wxWebRequestHeaderMap params;
wxWebRequest::SplitParameters(contentDisp, disp, params);
if ( disp == "attachment" )
{ {
wxFileName fn(uri.GetPath()); // Parse as filename to filter potential path names
wxFileName fn(params["filename"]);
suggestedFilename = fn.GetFullName(); suggestedFilename = fn.GetFullName();
} }
else
suggestedFilename = uri.GetServer(); if ( suggestedFilename.empty() )
{
wxURI uri(GetURL());
if ( uri.HasPath() )
{
wxFileName fn(uri.GetPath());
suggestedFilename = fn.GetFullName();
}
else
suggestedFilename = uri.GetServer();
}
return suggestedFilename; return suggestedFilename;
} }