może ktoś powiedzieć jak wstawić plik pdf w sqlserver 2005 i odczytać plik PDF z sqlserver ...Jak wstawić i odczytać plik pdf do bazy danych SQL Server 2005 przy użyciu C#
Thanks in advace
może ktoś powiedzieć jak wstawić plik pdf w sqlserver 2005 i odczytać plik PDF z sqlserver ...Jak wstawić i odczytać plik pdf do bazy danych SQL Server 2005 przy użyciu C#
Thanks in advace
Jeśli jesteś zainteresowany wykorzystaniem bazy danych do przechowywania plików, spójrz na this 4guysfromrolla article. Jest zorientowany na sieć, ale nie powinno być problemu ze znalezieniem tego, czego potrzebujesz.
Zasadniczo mówimy tylko o przechowywaniu i pobieraniu BLOB (danych image
lub varbinary(max)
). Zobacz to pytanie: Streaming directly to a database
Aby umieścić go w bazie danych, należy go przeczytać w tablicy bajtów. Albo odczytaj go z systemu plików, albo użyj właściwości AspNetFileUploadWebControl.FileBytes. Utwórz procedurę składowaną insert i dodaj tablicę bajtów jako parametr dla kolumny DB (kolumna musi być typu danych SQL "image").
Aby dostać się do bazy danych, należy użyć coś takiego:
theRow = getDatarowFromDatabase();
aByteArrayOfTheFile = (byte[])theRow["theSqlImageColumnWithTheFileInIt"];
Aby umożliwić użytkownikowi przeglądać lub pobrać go używać metody SendAsFileToBrowser():
SendAsFileToBrowser(aByteArrayOfTheFile, "application/pdf", "downloaded.pdf");
kod źródłowy metoda (z przeciążeniami):
// 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);
}