PDF gravação de binário no banco de dados
Pergunta
Ok,
Eu tenho um banco de dados SQL 2005 com um PDF armazenado. A coluna utiliza o tipo de imagem. Assim, quando o PDF fica lojas é uma matriz byte [].
Então, aqui é a parte mais difícil. Eu posso obtê-lo para armazenar os dados, mas não tenho certeza de como proceder para obter o byte [] array volta para o formato PDF e exibi-lo na página web.
Eu estou usando uma terceira ferramenta parte para gerar o PDF, que funciona muito bem.
O código que têm de gerar o byte [] matriz é como se segue:
Doc document = new Doc();
byte[] myArray = document.GetData();
I, em seguida, inserir a matriz de bytes [] para a base de dados.
Quando eu chegar a parte de trás matriz a partir do banco de dados que eu faça o seguinte:
public byte[] GetPDF(parameters)
{
return DAL.GetPDF(parameters)
}
array Isso retorna um byte válido [] como é suposto.
Agora, a única questão é realmente escrever o PDF para o site e tê-lo exibir no site, eu não sei como fazer isso ou onde começar mesmo.
Solução
Response.ContentType = "application/pdf";
byte[] bytes = YourBinaryContent;
using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
{
writer.Write(bytes, 0, bytes.Length);
}
Outras dicas
Este é bastante simples. Na verdade eu só fiz isso há um mês. Tivemos para armazenar o PDF no banco de dados e, em seguida, escrevê-lo quando o cliente pediu para ver seu documento.
O que você precisa fazer é na sua página web adicione o seguinte código:
byte[] myarray = BusinessLayer.GetPDF(parameters)
Response.Clear();
Response.ContentType = "application/pdf";
Response.BinaryWrite(myarray);
ver se isso funciona para você.
Você vai querer definir o Response.ContentType para "application / pdf" e, em seguida, chamar o método Response.BinaryWrite, passando os dados byte.