У меня есть веб-страница asp.net, где пользователи могут выбирать несколько элементов в сетке.Когда они нажимают кнопку загрузки, они должны иметь возможность загружать несколько PDF-файлов в виде zip-файла на основе идентификаторов выбранных элементов сетки.PDF-файлы хранятся в базе данных Oracle в виде BLOB-объектов.
Я могу получить один BLOB-объект и отобразить его в формате PDF в браузере.Но мне трудно понять, как поместить несколько BLOB-объектов в виде PDF-файлов в zip-файл, а затем загрузить указанный zip-файл.Я хотел бы использовать библиотеку System.IO.Compression, если это возможно.
Вот как выглядит мой код для отображения одного файла PDF:
OracleBlob oBlob = null;
byte[] bBlob = null;
using (OracleDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
sFileId = reader.GetInt32(0).ToString();
oBlob = reader.GetOracleBlob(1);
if (!oBlob.IsNull)
{
bBlob = new byte[oBlob.Length];
oBlob.Read(bBlob, 0, (int)oBlob.Length);
}
}
}
if (bBlob != null)
{
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.AddHeader("Content-Disposition", "inline;");
HttpContext.Current.Response.AddHeader("content-length", bBlob.Length.ToString());
HttpContext.Current.Response.BinaryWrite(bBlob);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
}