Записать PDF из двоичного файла в базу данных - PullRequest
4 голосов
/ 13 мая 2009

Хорошо,

У меня есть база данных SQL 2005 с сохраненным PDF. В столбце используется тип изображения. Таким образом, когда PDF получает хранилища, это массив байтов [].

Итак, вот сложная часть. Я могу заставить его хранить данные, но я не уверен, как вернуть массив byte [] обратно в формат PDF и отобразить его на веб-странице.

Я использую инструмент третьей части для создания PDF, который отлично работает.

Код, который я должен создать для массива byte [], выглядит следующим образом:

Doc document = new Doc();
byte[] myArray = document.GetData();

Затем я вставляю массив byte [] в базу данных.

Когда я возвращаю массив из базы данных, я делаю это:

public byte[] GetPDF(parameters)
{
    return DAL.GetPDF(parameters)
}

Возвращает действительный массив байтов [], как и положено.

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

Ответы [ 3 ]

3 голосов
/ 13 мая 2009
        Response.ContentType = "application/pdf";
        byte[] bytes = YourBinaryContent;

        using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
        {
            writer.Write(bytes, 0, bytes.Length);
        }
2 голосов
/ 13 мая 2009

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

Вам нужно добавить на свой веб-сайт следующий код:

byte[] myarray = BusinessLayer.GetPDF(parameters)

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

Посмотрите, работает ли это для вас.

1 голос
/ 13 мая 2009

Вы захотите установить для Response.ContentType значение «application / pdf», а затем вызвать метод Response.BinaryWrite, передавая байтовые данные.

...