Disons que vous avez une table comme ça:
CREATE TABLE PDFTable (
[PDFID] [bigint] IDENTITY (1, 1) NOT NULL ,
[PDFFile] [varbinary(max)]
)
et vous stockez vos fichiers PDF dans ce tableau au format binaire. Et vous voulez exposer vos fichiers PDF à vos visiteurs comme ça:
http://www.mysite.com/getpdf.aspx?pdfid=12
Voici un exemple pour la lecture des données binaires PDF à partir de la base de données et de l'écriture à flux de réponse:
// PageLoad event of your getpdf.aspx page :
long pdfId= Convert.ToInt64(Request.QueryString["pdfid"]);
using (var conn = new SqlConnection(connectionString))
{
using (var command = new SqlCommand(
"SELECT PDFFile FROM PDFTable WHERE PDFId = @PDFID", conn))
{
command.Parameters.Add("@PDFID", SqlDbType.Int).Value = pdfId;
conn.Open();
Response.ContentType = "application/pdf";
Response.BinaryWrite((byte[]) command.ExecuteScalar());
}
}
Cette page obligera votre client à ouvrir le pdf dans son navigateur.
Le fichier PDF s'est correctement ouvert dans mon navigateur. Adobe dans Chrome –