title: download file from server asp.net
body: <p>I want to download a file from server to a local host.</p>
  
  <p>i have a code from the net which should work but is not working</p>
  
  <pre><code>     protected void Button4_Click(object sender, EventArgs e)
      {
       //To Get the physical Path of the file(test.txt)
      string filepath = Server.MapPath("test.txt");
  
      // Create New instance of FileInfo class to get the properties of the file being downloaded
     FileInfo myfile = new FileInfo(filepath);
  
     // Checking if file exists
     if (myfile.Exists)
     {
     // Clear the content of the response
     Response.ClearContent();
  
  // Add the file name and attachment, which will force the open/cancel/save dialog box to show, to the header
  Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name);
  
  // Add the file size into the response header
  Response.AddHeader("Content-Length", myfile.Length.ToString());
  
  // Set the ContentType
  Response.ContentType = ReturnExtension(myfile.Extension.ToLower());
  
  // Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead)
  Response.TransmitFile(myfile.FullName);
  
  // End the response
  Response.End();
    }
  
      }
  
      private string ReturnExtension(string fileExtension)
      {
          switch (fileExtension)
          {
              case ".htm":
              case ".html":
              case ".log":
                  return "text/HTML";
              case ".txt":
                  return "text/plain";
              case ".doc":
                  return "application/ms-word";
              case ".tiff":
              case ".tif":
                  return "image/tiff";
              case ".asf":
                  return "video/x-ms-asf";
              case ".avi":
                  return "video/avi";
              case ".zip":
                  return "application/zip";
              case ".xls":
              case ".csv":
                  return "application/vnd.ms-excel";
              case ".gif":
                  return "image/gif";
              case ".jpg":
              case "jpeg":
                  return "image/jpeg";
              case ".bmp":
                  return "image/bmp";
              case ".wav":
                  return "audio/wav";
              case ".mp3":
                  return "audio/mpeg3";
              case ".mpg":
              case "mpeg":
                  return "video/mpeg";
              case ".rtf":
                  return "application/rtf";
              case ".asp":
                  return "text/asp";
              case ".pdf":
                  return "application/pdf";
              case ".fdf":
                  return "application/vnd.fdf";
              case ".ppt":
                  return "application/mspowerpoint";
              case ".dwg":
                  return "image/vnd.dwg";
              case ".msg":
                  return "application/msoutlook";
              case ".xml":
              case ".sdxl":
                  return "application/xml";
              case ".xdp":
                  return "application/vnd.adobe.xdp+xml";
              default:
                  return "application/octet-stream";
          }
      }
  </code></pre>
  
  <p>now when the button is clicked the file should be downloaded from the server to the local host computer... but nothing seems to be happening...</p>
  
  <p>i have the test.txt on the desktop of the serer... the save file option also does not come on the client side..</p>
  
  <p>I publish the files and put it in the inetpub folder of the server and run the GUI from the client side.. everything works except this...</p>
  
  <p>any suggestions...please help  </p>
  
  <p>this program downloads a file if it is present in the inetpub folder.. instead i want to download from any location within the server...</p>
  
  <p>??</p>