Skip to content

Commit

Permalink
Add proper filename support to downloads
Browse files Browse the repository at this point in the history
  • Loading branch information
MistressPlague committed Dec 22, 2023
1 parent 10118ce commit 6627744
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion Easy Minecraft Modpacks/MainUI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -375,9 +375,22 @@ public static string BetterDownloadFile(this WebClient client, string url, strin
{
var data = client.DownloadData(url);

var redir = Workarounds.GetRedirectedUrl(url);

var disposition = client.ResponseHeaders["Content-Disposition"];

var filename = Workarounds.UrlDecode(disposition != null ? new ContentDisposition(disposition).FileName : url.Substring(url.LastIndexOf("/", StringComparison.Ordinal) + 1));
var locationEnding = redir?.Substring(redir.LastIndexOf("/", StringComparison.Ordinal) + 1);

var hasQuery = locationEnding?.IndexOf("?", StringComparison.Ordinal) ?? -1;

if (hasQuery != -1)
{
locationEnding = locationEnding?.Substring(0, hasQuery);
}

var urlEnding = url.Substring(url.LastIndexOf("/", StringComparison.Ordinal) + 1);

var filename = Workarounds.UrlDecode(disposition != null ? new ContentDisposition(disposition).FileName : (locationEnding != null ? locationEnding : urlEnding));

File.WriteAllBytes($"{targetDir}\\{filename}", data);

Expand Down

0 comments on commit 6627744

Please sign in to comment.