我一直在为我正在开发的项目创建pdf文档。我想将生成的pdf文档存储在SQL数据库中,然后也可以检索此pdf文件。
这样做有什么建议?文档是否可以存储在数据库中而无需在服务器上物理创建文档?
答案 0 :(得分:1)
有什么建议可做 这个?文件可以存储在 没有物理的数据库 在服务器上创建文档?
当然只需将pdf创建为字节流(byte[]
)并将其存储在数据库中。根据您创建它的用途,您不必将其写入文件系统。
实际上,关于存储它的位置的争论。如果您有SQL Server 2008,则需要使用它。它会将文件存储在文件系统中,但您可以像使用任何其他数据一样通过数据库访问它。你可以获得两全其美的效果。
答案 1 :(得分:1)
这再次引发了关于在文件系统上或在sql server本身内存储事物的争论。
这实际上取决于您的需求,您所期望的大小等。以下是一些参考文献,每篇参考文献都有更多参考文献。
答案 2 :(得分:1)
请记住,SQL Server 2008现在具有FILESTREAM
数据类型。您可以将数据写入文件系统,但仍将其存储在列中。
答案 3 :(得分:0)
将PDF另存为byte[]
,然后您可以在准备好查看时使用itextsharp
创建PDF。
答案 4 :(得分:0)
您可以使用这样的表在SQL Server中存储文件。
CREATE TABLE [Documents]
(
[FileName] nvarchar(1000),
[FileContent] varbinary(max)
)
答案 5 :(得分:0)
您有2种方法可以做到这一点:
我建议您使用第二个..
为什么我选择那个答案?为安全起见。
其中一个原因: 一点例子:
如果您执行Firt(将文件存储在文件服务器中......),您就是 装箱数据库上的文件夹..所以你的服务器将容易受到攻击 用于攻击或病毒..
如果你做第二个。该文件将被编码并存储在数据库中 而且你不必担心攻击或机器感染..
我认为这是一个简单的原因,为什么永远不要使用第一种方式!!!!!