Как вставить и прочитать файл PDF в базу данных Sql Server 2005 с помощью C # - PullRequest
5 голосов
/ 21 февраля 2009

Как вставить файл pdf в sqlserver 2005 и прочитать файл pdf из sqlserver?

Ответы [ 3 ]

3 голосов
/ 11 июня 2009

Чтобы поместить его в базу данных, вы должны прочитать его в байтовом массиве. Либо прочитайте его из файловой системы, либо используйте свойство AspNetFileUploadWebControl.FileBytes. Создайте хранимую процедуру вставки и добавьте байтовый массив в качестве параметра для столбца БД (столбец должен иметь тип данных SQL «изображение»).

Чтобы вывести его из базы данных, используйте что-то вроде:

theRow = getDatarowFromDatabase();
aByteArrayOfTheFile = (byte[])theRow["theSqlImageColumnWithTheFileInIt"];

Чтобы разрешить пользователю просматривать или загружать его, используйте мой метод SendAsFileToBrowser ():

SendAsFileToBrowser(aByteArrayOfTheFile, "application/pdf", "downloaded.pdf");

Исходный код метода (с перегрузками):

</p> <pre><code> // 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); }

3 голосов
/ 21 февраля 2009

Если вы заинтересованы в использовании базы данных для хранения файлов, посмотрите эту статью 4guysfromrolla . Он ориентирован на веб, но не должно быть проблем с поиском того, что вам нужно.

0 голосов
/ 21 февраля 2009

По сути, вы просто говорите о хранении и извлечении BLOB-данных (из image или varbinary(max) данных). Смотрите этот вопрос: Потоковая передача непосредственно в базу данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...