Reading a binary file and using Response.BinaryWrite()
<p>I have an app that needs to read a PDF file from the file system and then write it out to the user.  The PDF is 183KB and seems to work perfectly.  When I use the code at the bottom the browser gets a file 224KB and I get a message from Acrobat Reader saying the file is damaged and cannot be repaired.</p>

<p>Here is my code (I've also tried using File.ReadAllBytes(), but I get the same thing):</p>

<pre><code>using (FileStream fs = File.OpenRead(path))
      {
       int length = (int)fs.Length;
       byte[] buffer;

       using (BinaryReader br = new BinaryReader(fs))
       {
        buffer = br.ReadBytes(length);
       }

       Response.Clear();
       Response.Buffer = true;
       Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", Path.GetFileName(path)));
       Response.ContentType = "application/" + Path.GetExtension(path).Substring(1);
       Response.BinaryWrite(buffer);
      }
</code></pre>
