Хранение и извлечение динамически созданного PDF в SQL - PullRequest
1 голос
/ 20 мая 2010

Я занимался созданием PDF-документов для проекта, над которым я работаю. Я хотел бы сохранить сгенерированный pdf-документ в базе данных SQL, а затем позже получить этот pdf-файл.

Какие есть предложения для этого? Может ли документ храниться в базе данных без физического создания документа на сервере?

Ответы [ 6 ]

1 голос
/ 20 мая 2010

Имейте в виду, что SQL Server 2008 теперь имеет тип данных FILESTREAM. Вы можете записать данные в файловую систему, но сохранить их в столбце.

1 голос
/ 20 мая 2010

Это снова вызовет споры за / против хранения вещей в файловой системе или на самом сервере sql.

Это действительно зависит от ваших потребностей, ожидаемого размера и т. Д. Вот несколько ссылок, каждая из которых содержит больше ссылок.

Хранение файла в базе данных в отличие от файловой системы?

сохранить изображение в базе данных или в системном файле?

1 голос
/ 20 мая 2010

Каковы некоторые предложения для выполнения этот? Может ли документ храниться в база данных без физического создание документа на сервере?

Конечно, просто создайте pdf в виде потока байтов (byte[]) и сохраните его в базе данных. В зависимости от того, что вы используете для его создания, вам не нужно записывать его в файловую систему.

На самом деле, на аргумент о том, где его хранить. Если у вас есть SQL Server 2008, вы хотите использовать это. Он сохранит файл в файловой системе, но вы можете получить к нему доступ через базу данных, как и при использовании любых других данных. Вы получаете лучшее из обоих миров.

0 голосов
/ 23 декабря 2013

У вас есть 2 способа сделать это:

  1. Сохранить в FileServer и сохранить имя файла в базе данных.
  2. Закодируйте файл и сохраните в базе данных.

Я рекомендую вам использовать второй ..
почему я выбираю этот ответ ?? для безопасности.

Одна из многих причин: Маленький пример:

  • Если вы делаете Firt (сохраняете файл на файловом сервере ...), вы - создание папки в вашей базе данных .. так что ваш сервер будет уязвим для атак или для вирусов ..

  • Если вы делаете второе. файл будет закодирован и сохранен в базе данных и вам не нужно беспокоиться об атаках или машинных инфекциях ..

Я думаю, что это одна простая причина, почему никогда не использовать первый ПУТЬ !!!!!

0 голосов
/ 20 мая 2010

Вы можете использовать такую ​​таблицу для хранения файлов в SQL Server.

CREATE TABLE [Documents]
(
    [FileName] nvarchar(1000),
    [FileContent] varbinary(max)
)
0 голосов
/ 20 мая 2010

Сохраните PDF как byte[], затем вы можете использовать itextsharp для создания PDF, когда он будет готов к просмотру.

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