Показать PDF из базы данных Oracle в браузере от ASP.net - PullRequest
2 голосов
/ 14 марта 2012

У меня есть поле BLOB, содержащее документ PDF.Я хочу получить этот BLOB и отобразить PDF в новой вкладке или окне.Я уже получаю большой двоичный объект, но не могу его отобразить.Я использую C # и ASP.net 2010. Пока что у меня есть следующий код:

byte[] blobBuffer = getPDFBlob(selectedOfferId);

if (blobBuffer != null)
{
    Response.ContentType = "application/pdf";
    //Response.AddHeader("Content-Type", "application/pdf");
    //Response.AddHeader("Content-Disposition", "inline");
    Response.BinaryWrite(blobBuffer);
    Response.End();
}

getPDFBlob - это процедура, которая входит в базу данных и извлекает содержимое поля BLOB.Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

попробуйте добавить:

Response.AddHeader("content-disposition", "inline;filename=mypdf.pdf");
0 голосов
/ 14 марта 2012

Вы должны позвонить Response.Clear(); перед установкой ContentType и т. Д.

Также попробуйте позвонить Response.AddHeader("content-disposition", "attachment; filename=test.pdf"); до вызова BinaryWrite.

ОБНОВЛЕНИЕ - согласно комментариям:

В зависимости от того, чего вы хотите достичь (загрузка или отображение в браузере), вы можете альтернативно попробовать позвонить Response.AddHeader("content-disposition", "inline; filename=test.pdf"); перед вызовом BinaryWrite.

ОБНОВЛЕНИЕ 2:

Еще один момент, который вам следует проверить, - это содержание blobBuffer - запишите его в локальный файл и посмотрите, является ли он действительным PDF ...

ОБНОВЛЕНИЕ 3:

После звонка BinaryWrite и до звонка End попробуйте позвонить Response.Flush();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...