2010-01-30 108 views
0

如何将文件(pdf和word文件)存储到sql数据库以及如何在用户单击时从sql数据库中选择“保存”,“打开”该文件。我使用C#+ asp.net web应用从sql数据库中存储和显示文件

+0

哪个数据库供应商? .NET Framework的哪个版本? – 2010-01-30 11:33:54

回答

0

存储文件做项目,你应该从SQL Server 2008中检查出文件流:http://msdn.microsoft.com/en-us/library/cc716724.aspx

其他传统平台也有类似的支持(二进制或图像数据类型)。

另一种方法是您可以将文件存储在共享文件系统中,并且只将该文件的路径存储在SQL表中。

1

你需要做几件事情:

1)创建UI页面,允许用户上传文件。

该页面将有FileUpload控制检查所需的一些推广

2)编写代码,将这些文件保存到数据库

该文件可以存储为二进制的斑点。这取决于您和您的应用程序来决定数据库的模式。您也可以选择许多ORM工具之一,为您提供访问从代码数据库看到

你有很多选择,选择看起来最自然/容易的任何东西。

3)创建用户界面供用户选择现有的文件

这将使用你的ORM数据层读回文件的列表,并显示某种按钮/链接供用户选择和下载

4)从数据库中检索的文件,当用户选择一个,并返回文件

阅读这篇MSDN文章有关returning binary files

此外,谷歌一点点,你可能会发现很多现有的解决方案,如DNN等框架。

0

最常见的方法是在数据库中有两列用于存储文件propley。 1列保存文件名及其扩展名(例如:file1.txt),第二列将为数据类型二进制。 在应用程序级别。一个方法获取上传的文件名并将其转换为一个字节数组。那么这个数组存储在二进制字段的sql中。文件名存储在第1个字段中。 要重新读取文件,另一种方法将从sql中读取二进制字段并将其转换回FileStream,然后将其保存为原始文件名(扩展名)。

0

使用fileUploaded来上传文件。

文件读入到一个字节数组:

byte[] data = System.File.ReadAllByte(File Path); 

转换字节[]为十六进制并将其存储在一个nvarchhar数据字段在SQL

stringBuilder sb = new StringBuilder() 
foreach(byte b in data) 
{ 
    sb.Append(b.ToString("X"); 
} 

当你需要显示它,将其转换回字节[]并创建一个文件,并让用户从此处打开/保存。

相关问题