Puede alguien decir cómo insertar el archivo PDF en SQL Server 2005 y leer el archivo PDF a partir de sqlserver ...Cómo insertar y leer un archivo PDF a SQL Server 2005 de base de datos usando C#
Gracias de advace
Puede alguien decir cómo insertar el archivo PDF en SQL Server 2005 y leer el archivo PDF a partir de sqlserver ...Cómo insertar y leer un archivo PDF a SQL Server 2005 de base de datos usando C#
Gracias de advace
Si está interesado en usar la base de datos para el almacenamiento de archivos, mire this 4guysfromrolla article. Está orientado a la web, pero no debería haber ningún problema para encontrar lo que necesita.
Básicamente, usted solo está hablando de almacenamiento y recuperación de BLOB (de image
o datos de varbinary(max)
). Consulte esta pregunta: Streaming directly to a database
Para ponerlo en la base de datos debe leerlo en una matriz de bytes. Puede leerlo desde el sistema de archivos o usar la propiedad AspNetFileUploadWebControl.FileBytes. Cree un procedimiento insert insertado y agregue la matriz de bytes como el parámetro para su columna DB (la columna debe ser del tipo de datos SQL "image").
para sacarlo de la base de datos, utilice algo como:
theRow = getDatarowFromDatabase();
aByteArrayOfTheFile = (byte[])theRow["theSqlImageColumnWithTheFileInIt"];
Para permitir al usuario ver o descargar que usar mi método SendAsFileToBrowser():
SendAsFileToBrowser(aByteArrayOfTheFile, "application/pdf", "downloaded.pdf");
El código fuente de el método (con sobrecargas):
// Stream a binary file to the user's web browser so they can open or save it.
public static void SendAsFileToBrowser(byte[] File, string Type, string FileName)
{
string disp = "attachment";
if (string.IsNullOrEmpty(FileName))
{
disp = "inline";
}
// set headers
var r = HttpContext.Current.Response;
r.ContentType = Type; // eg "image/Png"
r.Clear();
r.AddHeader("Content-Type", "binary/octet-stream");
r.AddHeader("Content-Length", File.Length.ToString());
r.AddHeader("Content-Disposition", disp + "; filename=" + FileName + "; size=" + File.Length.ToString());
r.Flush();
// write data to requesting browser
r.BinaryWrite(File);
r.Flush();
}
//overload
public static void SendAsFileToBrowser(byte[] File, string Type)
{
SendAsFileToBrowser(File, Type, "");
}
// overload
public static void SendAsFileToBrowser(System.IO.Stream File, string Type, string FileName)
{
byte[] buffer = new byte[File.Length];
int length = (int)File.Length;
File.Write(buffer, 0, length - 1);
SendAsFileToBrowser(buffer, FileName, Type);
}