title: Trying to stream a PDF file with asp.net is producing a "damaged file"
body: <p>In one of my asp.net web applications I need to hide the location of a pdf file being served to the users. </p>
  
  <p>Thus, I am writing a method that retrieves its binary content from its location on a CMS system and then flushes a byte array to the web user.</p>
  
  <p>I'm getting, unfortunately, an error when downloading the stream: "Could not open the file because it is damadged" (or something similar to that, when opening the file in adobe reader).</p>
  
  <p>Question 1: what am I doing wrong?
  Question 2: can I download large files using this approach?</p>
  
  <pre><code>    private void StreamFile(IItem documentItem)
      {
          //CMS vendor specific API
          BinaryContent itemBinaryContent = documentItem.getBinaryContent();
          //Plain old .NET
          Stream fileStream = itemBinaryContent.getContentStream();
          var len = itemBinaryContent.getContentLength();
          SendStream(fileStream, len, itemBinaryContent.getContentType());
      }
  
      private void SendStream(Stream stream, int contentLen, string contentType)
      {
          Response.ClearContent();
          Response.ContentType = contentType;
          Response.AppendHeader("content-Disposition", string.Format("inline;filename=file.pdf"));
          Response.AppendHeader("content-length", contentLen.ToString());
          var bytes = new byte[contentLen];
          stream.Read(bytes, 0, contentLen);
          stream.Close();
          Response.BinaryWrite(bytes);
          Response.Flush();
      }
  </code></pre>