2014-09-24 45 views

回答

3

如果你必須使用一個文本字段,可以讀取該文件作爲一個字節數組,將其轉換成一個base64字符串,並存儲在文本字段:

string fileString = Convert.ToBase64String(memoryStream.ToArray()); 

,或者如果你有一個實際的在磁盤上的文件:

string fileString = Convert.ToBase64String(File.ReadAllBytes(@"path\to\file.pdf")); 
+0

有一個問題:什麼是Base64?它是否與文本類型兼容? – ConfusedSleepyDeveloper 2014-09-24 19:46:35

+4

Base64是一種編碼方案,可讓您將二進制數據表示爲字符串。 http://en.wikipedia.org/wiki/Base64 – 2014-09-24 19:50:07

3

一種方法是將文件轉換爲如下所示的字節數組,然後將其存儲在數據庫中的varbinary列中。

​​

我寧願存儲文件服務器或某些文件夾的文件,然後就存儲在數據庫文件路徑。

+0

我說列類型是「TEXT」 ...... TEXT」 ......不VARBINARY – ConfusedSleepyDeveloper 2014-09-24 19:29:14

+0

好吧,如果DB模式不能改變,那麼它可以存儲在'text'列但是當你從db返回時它必須被轉換回二進制文件。 – 2014-09-24 19:35:23

+0

好的。怎麼樣?你能更新你的回答? – ConfusedSleepyDeveloper 2014-09-24 19:36:30

2

您可以讀取任何二進制文件到字節數組,並將其轉換爲使用Convert.ToBase64String的base64。結果字符串可以作爲文本存儲到數據庫。當你需要將它解碼回字節數組時,使用FromBase64String。