title: Alternative to Response.TransmitFile for transferring files via HTTP
body: <p>I'm working on a ASP.NET website that allows users to download files.</p>
  
  <p>Previously the files were stored on the same server as the website so we could do:</p>
  
  <pre><code>Response.Clear();
  Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
  Response.AddHeader("Content-Length", response.ContentLength.ToString());
  Response.ContentType = "application/octet-stream";
  Response.TransmitFile(path);
  Response.End();
  </code></pre>
  
  <p>However, now some of the files are stored on a seperate server. I can verify that the files exist using</p>
  
  <pre><code>WebRequest request = WebRequest.Create(absolute-url);
  WebResponse response = request.GetResponse();
  </code></pre>
  
  <p>But how can I facilitate the transfer as TransmitFile requires a virtual path not a url?</p>
  
  <p>I need the users to be able to choose where to Save the file as with a normal web download</p>
  
  <p>What's the best way to do this?</p>