Вопрос

Хорошо,

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

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

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

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

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

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

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

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

Это возвращает действительный массив byte[], как и предполагалось.

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

Это было полезно?

Решение

        Response.ContentType = "application/pdf";
        byte[] bytes = YourBinaryContent;

        using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
        {
            writer.Write(bytes, 0, bytes.Length);
        }

Другие советы

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

Что вам нужно сделать, это добавить на свою веб-страницу следующий код:

byte[] myarray = BusinessLayer.GetPDF(parameters)

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top