In this article I will explain with an example, how to get full path from ASP.Net FileUpload control using C# and VB.Net.
 
 

The Misunderstanding

The developers tend to access the path of the file on the User’s machine that he has selected for upload in browsers like Internet Explorer (IE), Firefox, Chrome, Safari and Opera. It is displayed as fakepath.
 
 

The Reason

Initially , the full path of the File on the User’s machine was sent to the server, but later due to security reasons browsers is returning only file name instead of full path from client machine, as the path was being used to hack the computer.
Hence, now the location of the folder of the file on the User’s machine is not sent to the server and there is no need for the location of the file i.e. its full path for saving.
 
 

Solution

HTML Markup

The HTML Markup consists of following controls.
FileUpload – For selected the file.
Button – For uploading selected file.
The Button has been assigned with an OnClick event handler.
<asp:FileUpload ID="fuUpload" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="OnUpload" />
 
 

Namespaces

You will need to import the following namespace.
C#
using System.IO;
 
VB.Net
Imports System.IO
 
 

Getting Full File Path from FileUpload control in C# and VB.Net

When the Upload Button is clicked, the filename is extracted from the FileName property of the PostedFile property using the GetFileName function of the Path class.
Finally, the uploaded file is saved into the Uploads Folder (Directory) using SaveAs method.
Note: For more details regarding file upload, please refer my article, ASP.Net 4.5: Upload File using C# and VB.Net.
 
C#
protected void OnUpload(object sender, EventArgs e)
{
    string fileName = Path.GetFileName(fuUpload.PostedFile.FileName);
    fuUpload.PostedFile.SaveAs(Server.MapPath("~/Uploads/" + fileName));
}
 
VB.Net
Protected Sub OnUpload(ByVal sender As Object, ByVal e As EventArgs)
    Dim fileName As String = Path.GetFileName(fuUpload.PostedFile.FileName)
    fuUpload.PostedFile.SaveAs(Server.MapPath("~/Uploads/" & fileName))
End Sub 
 
 

Screenshot

ASP.Net FileUpload Control: Get Full File Path
 
 

Downloads