Scrivi PDF da binario nel database
Domanda
D'accordo,
Ho un database SQL 2005 con un PDF memorizzato. La colonna utilizza il tipo di immagine. Così, quando il PDF ottiene lo memorizza è un byte [] array.
Così qui è la parte più difficile. Posso farlo per memorizzare i dati, ma non sono sicuro di come fare per ottenere l'array di byte [] di nuovo in formato PDF e visualizzarli sulla pagina web.
Sto usando uno strumento di 3a parte per generare il PDF, che funziona alla grande.
Il codice che ho per generare l'array di byte [] è la seguente:
Doc document = new Doc();
byte[] myArray = document.GetData();
Ho poi inserisco l'array di byte [] nel database.
Quando ottengo la matrice indietro dal database faccio questo:
public byte[] GetPDF(parameters)
{
return DAL.GetPDF(parameters)
}
Ciò restituisce un byte valida [] array come si suppone.
Ora, l'unico problema è in realtà scrivendo il PDF al sito web e averlo visualizzare sul sito web, non sono sicuro come fare questo o dove iniziare anche.
Soluzione
Response.ContentType = "application/pdf";
byte[] bytes = YourBinaryContent;
using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
{
writer.Write(bytes, 0, bytes.Length);
}
Altri suggerimenti
Questo è abbastanza semplice. In realtà ho appena fatto questo un mese fa. Abbiamo dovuto memorizzare il PDF nel database e poi scrivere fuori quando il cliente ha chiesto di vedere il loro documento.
Quello che dovete fare è sulla tua pagina web aggiungere il seguente codice:
byte[] myarray = BusinessLayer.GetPDF(parameters)
Response.Clear();
Response.ContentType = "application/pdf";
Response.BinaryWrite(myarray);
vedere se funziona per te.
Ti consigliamo di impostare il Response.ContentType a "application / pdf", e quindi chiamare il metodo Response.BinaryWrite, passando nei dati di byte.