2010-08-19 122 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