Я хочу загрузить файл PDF из базы данных SQL Server, который хранится в двоичном столбце. На странице aspx есть кнопка LinkButton. Обработчик событий этой кнопки выглядит так:
protected void LinkButtonDownload(object sender, EventArgs e)
{
...
byte[] aByteArray;
// Read binary data from database into this ByteArray
// aByteArray has the size: 55406 byte
Response.ClearHeaders();
Response.ClearContent();
Response.BufferOutput = true;
Response.AddHeader("Content-Disposition", "attachment; filename=" + "12345.pdf");
Response.ContentType = "application/pdf";
using (BinaryWriter aWriter = new BinaryWriter(Response.OutputStream))
{
aWriter.Write(aByteArray, 0, aByteArray.Length);
}
}
В моем браузере предлагается «Диалог открытия / сохранения файла». Когда я сохраняю этот файл «12345.pdf» на диск, размер файла составляет 71523 байт. Дополнительные 16 КБ в конце PDF-файла - это HTML-код моей страницы (как я вижу, просматривая файл в редакторе). Я запутался, потому что полагал, что ClearContent и ClearHeaders будут гарантировать, что содержимое страницы не будет отправлено вместе с содержимым файла.
Что я здесь не так делаю?
Спасибо за помощь!