Байт, обслуживающий PDF-файлы из SQL varbinary - PullRequest
1 голос
/ 23 июня 2009

Я хочу воспользоваться веб-оптимизацией для PDF-файлов, позволяя пользователям загружать их по одной странице.

PDF-файлы настроены для быстрого просмотра веб-страниц. Я обслуживаю PDF-файлы с SQL Server 2008. Веб-приложение c # .net 3.5 обрабатывает linq to SQL для загрузки файлов в двоичный массив из базы данных. Файл открывается в плагине PDF reader на клиенте в IE.

Любая помощь или толчок в правильном направлении будет принята с благодарностью.

Спасибо

Ответы [ 2 ]

1 голос
/ 23 июня 2009

Если вы просто хотите отправить PDF клиенту, создайте файл aspx с этим кодом:

protected void Page_Load(object sender, EventArgs e)
{
  byte[] pdfdata = GetMyPdfDataSomehow();

  Response.Clear();
  Response.ContentType = "application/pdf";
  Response.BinaryWrite(pdfdata);

  if (NoCaching)
  {
    Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
  }
  else
  {
    Response.Cache.SetExpires(DateTime.Now.AddDays(7));
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetValidUntilExpires(true);
  }
  Response.End();
}

Однако, если вы хотите узнать, как разбить файл PDF на страницу, вам понадобится библиотека PDF для этого.

0 голосов
/ 23 июня 2009

Возврат всего PDF - это просто случай возврата двоичного файла в ответ http, согласно ответу Криса.

Для строчной обработки я бы предложил использовать что-то вроде Fiddler2 или Wireshark для просмотра http-трафика. В запросах могут быть некоторые пользовательские заголовки http, немного похожие на поддержку «возобновления загрузки» через заголовки диапазона байтов.

Вам нужно будет посмотреть работающий постраничный пример и посмотреть, что посылают и клиент, и сервер.

...