The .NET framework supports it. You can use a standard HTML button with a
type of "file":
<INPUT type="file" id="buttonImage" runat="server" size="40">
When the user submits (posts the form back), you can process the file
transfer in a fashion similar to this (error checking left out for clarity):
public string postFile(HtmlInputFile theFile /* this is the server side
INPUT control */ )
{
string theFinalPath = "";
// Get the base file name of the posted file...
String aPostedFileName =
System.IO.Path.GetFileName(theFile.PostedFile.FileName);
// Get the physical path name for this application's virtual
directory...
String aPath = this.Server.MapPath(".\\");
// Save the file...
theFinalPath = aPath + "UploadedFiles\\" + aPostedFileName;
theFile.PostedFile.SaveAs(theFinalPath);
return theFinalPath;
}