2010-02-13 65 views

回答

2

您可以在数据库存储它作为一个BLOB (Binary Large OBject).

类似的东西会工作

string filePath = ""; 
string connectionString = ""; 
FileStream stream = 
    new FileStream(filePath, FileMode.Open, FileAccess.Read); 
BinaryReader reader = new BinaryReader(stream); 
byte[] file = reader.ReadBytes((int)stream.Length); 
reader.Close(); 
stream.Close(); 

SqlCommand command; 
SqlConnection connection = new SqlConnection(connectionString); 
command = 
    new SqlCommand("INSERT INTO FileTable (File) Values(@File)", connection); 
command.Parameters.Add("@File", SqlDbType.Binary, file.Length).Value = file; 
connection.Open(); 
command.ExecuteNonQuery(); 
+0

感谢您的帮助。 我还需要在文档中搜索关键字并突出显示。如何在asp.net中做到这一点。 – 2010-02-13 12:53:34

+0

这不是一个简单的陈述。通常,应用程序包含用于搜索的整个模块/单元。 – 2010-02-13 13:18:34

+0

我建议在存储数据之前将数据打包(gzip,这是标准的C#库)。我们得到了80%的空间使用减少量。在现代处理器上,解压缩数据比从磁盘读取额外80%的数据更快。 – 2010-04-22 15:10:45

1

如上所述,您可以将文档存储为BLOB。然后,您需要一些索引内容的方式,以便搜索。

你可能是原油和提取Word文档的内容为文本,这个存储与文件一起,然后查询使用的关键字这个新列。

这不会是particuarly快速或虽然efficent。它看起来好像全文索引可能会诀窍:http://www.codeproject.com/KB/architecture/sqlfulltextindexing.aspx 显然Office文档可以编入索引。

当输入一个关键字,那么你可以查询全文索引,找到匹配的文件,然后打开文件,并突出使用或者办公室主互assesmbiles或VSTO的话。

0

您的网站是公开的吗?一个好的非常规解决方案是使用Google。输入到谷歌:

网站:www.yoursite.com文件类型:DOC SEARCHTERM

下面是一个例子。注意查看HTML链接突出显示文本。 WhiteHouse.gov OMB Search

如果你想获得幻想,你可以使用WebRequest对象,以便在服务器上的请求,谷歌,然后解析出来只是显示你的页面上的链接ViewHtml的响应。