Escribe PDF a partir de la base de datos binario en
Pregunta
De acuerdo,
Tengo una base de datos SQL 2005 con un PDF almacenado. La columna utiliza el tipo de imagen. Así que cuando el PDF se almacena es un [] matriz de bytes.
Así que aquí es la parte difícil. Puedo reciba para almacenar los datos, pero no estoy seguro de cómo hacer para conseguir el [] matriz de bytes de nuevo en formato PDF y lo mostrará en la página web.
Estoy utilizando una herramienta de tercera parte para generar el PDF, que funciona muy bien.
El código que tengo para generar el [] matriz de bytes es como sigue:
Doc document = new Doc();
byte[] myArray = document.GetData();
I a continuación, insertar el [] matriz de bytes en la base de datos.
Cuando llego a la matriz de vuelta de la base de datos hago esto:
public byte[] GetPDF(parameters)
{
return DAL.GetPDF(parameters)
}
Esto devuelve un byte válido [] array, ya que se supone que es.
Ahora, el único problema es en realidad escribiendo el PDF en el sitio web y hacer que se muestre en el sitio web, no estoy seguro de cómo hacer esto o por dónde empezar siquiera.
Solución
Response.ContentType = "application/pdf";
byte[] bytes = YourBinaryContent;
using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
{
writer.Write(bytes, 0, bytes.Length);
}
Otros consejos
Esto es bastante simple. De hecho acabo de hacer esto hace un mes. Tuvimos que guardar el PDF en la base de datos y luego escribirlo cuando el cliente solicita para ver su documento.
Lo que hay que hacer es en tu página web agregue el código siguiente:
byte[] myarray = BusinessLayer.GetPDF(parameters)
Response.Clear();
Response.ContentType = "application/pdf";
Response.BinaryWrite(myarray);
ver si funciona para ti.
Usted querrá ajustar la Response.ContentType a "application / pdf", y luego llamar al método Response.BinaryWrite, pasando en los datos de byte.