Запись PDF из двоичного файла в базе данных
Вопрос
Хорошо,
У меня есть база данных 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, передав байтовые данные.