I had a look around the code that deals with the file explorer (that does not restrict the upload file type) and found this. Might be useful:
public static void UploadToDirectory(string directory)
{
Assert.ArgumentNotNull((object) directory, "directory");
Error.AssertString(directory, "directory", true);
UrlString urlString = new UrlString("/sitecore/shell/Applications/Dialogs/Upload/Upload.aspx");
urlString.Append("di", directory);
Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), "files:uploaded");
}
This method is in Sitecore.Shell.Framework.Files
in Sitecore.Kernel