2010-02-13 190 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的響應。