2010-08-19 123 views
0

我有一個關於如何檢索從數據庫中存儲爲byte []數組的mp3文件的問題,並讓用戶下載/播放它?從數據庫中檢索mp3文件

+0

不是C#但見http://stackoverflow.com/questions/3232292/retrieve-and-play-mp3-files-from-mysql-using-javascript-php – ChrisF 2010-08-19 13:13:59

回答

5

嗯。這肯定是可以做到的,但如果它是一個RDBMS,你應該重新考慮解決方案。 Usualy數據庫不是爲使用大型二進制對象而設計或優化的,讀取和寫入數據遠非最佳。

爲什麼不將文件存儲在文件夾中並將文件和文件夾名稱保存到數據庫中?

+0

同意,二進制大對象沒有地方在數據庫中。 – DavidGouge 2010-08-19 11:57:38

+0

如果它是SQL Server版本> 2008,則可以利用文件流類型。 – 2010-08-19 12:11:48

+1

@Carles:真實但仍不是最佳版本。將文件存儲在文件系統中也具有這樣的優點,即您可以使用mp3標籤上的索引來讓用戶搜索它。 – 2010-08-19 12:20:59

0

嘗試使用HttpHandler。 Here是創建一個很好的教程。您只需將字節數組寫入響應流,並在類似於此應用程序的應用程序中發佈鏈接。

http://myserver/myhttphandler.ashx?mp3File=x 
+0

可以使用簡單的代碼示例,否則答案是好的。 – Russ 2010-08-19 13:10:09

+0

這是最簡單的部分。困難的部分是讓它在瀏覽器中流式傳輸。圖像是一個不同的故事。 – 2010-08-19 15:41:12

1

要將字節數組保存爲可以下載的文件,可以使用FileStream。

byte[] array; //Loaded array of bytes. 
using (FileStream fs = new FileStream(path)) 
{ 
    fs.Write(array, 0, array.length); 
} 
+0

但我應該在哪裏顯示鏈接以及如何使用數據網格或其他方式顯示它?我不知道該怎麼做.. – Leema 2010-08-20 04:37:29