dim choose,path,mydb,myset,SQL,fs,mp3
‘##### 获得list.htm表单中选中的歌曲项
对应的id号,并赋给字串变量choose #####
choose=("
for i=3 to request.form.count
choose=choose+request.form(i)+,"
next
choose=left(choose,len(choose)-1)+)"
‘##### 判断choose变量,如果不包含任何id号,
说明list.htm中没有选中任何歌曲,终止程序#####
if choose=()" then
response.redirect(list.htm")
response.end
end if
‘#####设置文件路径,需要把temp目录的权限设为
对internet匿名用户具有read & write 权限 #####
path=E:inetpubwwwroottemp"
‘##### 创建文件对象 #####
Set fs = CreateObject(Scripting.FileSystemObject")
Set mp3 = fs.CreateTextFile(path+listen.m3u", True)
‘##### 创建数据库对象#####
set mydb=server.createobject(adodb.connection")
mydb.open music"
‘##### 检索数据库,获得歌曲信息 #####
SQL=select mp3name,url from "&dbname&
where id in "&choose
set myset=tdb.execute(SQL)
do while not myset.eof
‘##### 生成点播歌曲文件列表 #####
mp3.Write(http://"+myset(url")+chr(10))
myset.movenext
loop
‘##### 更新数据库中的当天点播次数和
总共点播次数 #####
SQL=update music set click=click+1,
this=this+1 where id in "&choose
mydb.execute(SQL)
‘##### 取消对象 #####
set myset=nothing
mydb.close
set mydb=nothing
mp3.close
set mp3=nothing
‘##### 将该文件下载给用户#####
response.redirect(listen.m3u")
response.end
%>
----注意:利用这种方法时,要控制.m3u文件Http头的内容。在Winnt中可利用IIS设置.m3u文件类型的Mine内容。具体操作如下:启动IIS
音乐排行榜
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
----音乐排行榜是音乐服务器不可缺少的一项内容,其重要性不亚于一个站点的Pageview。它可以向歌迷即时提供信息、引导欣赏、动态地反映潮流趋势。在众多的音乐服务器中,排行榜也是竟相推陈出新的地方,具有很高的点击率。一般说来,排行榜包括总共点播次数、当天点播次数、总共下载次数等内容。具体的实现方法比较简单。在单表中可以利用如下SQL语句:select * from music order by total_click 。若是多表,则可以利用带join子句的联合查询SQL语句。如果要限定查询记录数,可采用count()集合函数。如在本例中,如果要查询当天点播次数前20名的歌曲,可采用如下语句:select top 20 * from music order by total_click desc 。排行榜的功能主要取决于主题数据库的规划如何,你可以根据需要增删字段,以实现相应功能(如增加进榜时间、歌手资料、名次变化等等),所涉及的SQL语句也不会过于复杂。总之,排行榜是体现一个音乐网站特色所在,可以自由发挥。
音乐主题检索
----提到检索,很多人立刻联想到Yahoo、Soho等着名站点,并且颇有神秘之感。其实,搜索引擎在数据库中并非难事,因为数据库内置的数据引擎已经提供了很好的基础。搜索效率的高低取决于数据库的性能和SQL语句的效率。在前台,可以提供一系列的检索项目和条件选项。在后台,则根据前台提交的表单,生成相应的查询语句在数据库中执行,并将查询结果返回。比如在前台提交的表单为:检索项目=歌手姓名,内容=张学友,匹配条件=全字匹配,则后台生成的SQL 语句为:select * from music where singer=‘张学友' order by edition,id asc,这样就可以检索出张学友的所有歌曲信息,并按专集分类返回。又如前台要查询的歌手姓名为齐秦,且歌曲名称带有雨字的所有歌曲(即要求模糊匹配),则后台生成的SQL语句为: select * from music where singer =‘齐秦' and mp3name like ‘%雨%' order by id asc ,将返回冬雨、太阳雨、无情的雨无情的你等等。只要运用适当的技巧和灵活的 SQL语句,就可以让你的主题检索发挥得淋漓尽致。
音乐下载功能
----提供音乐下载功能,同样是音乐服务器的一个基本功能,特别是对远程用户,将喜爱的歌曲下载后才能欣赏。一般有两种方式提供下载,一种是直接通过Http和浏览器下载,另一种是将曲库开辟为Ftp目录,通过ftp协议下载。本例中采用前一种方式,并且在数据库中对下载次数进行跟踪记录。有些站点还根据需要对歌曲进行压缩加密,将密码提供给正式用В彩且惶蹩扇≈馈1纠谐绦蛉缦拢?
<%
‘##### 获得歌曲标志号id #####
id=request(id")
set tdb=server.createobject(adodb.connection")
tdb.open music"
SQL=select mp3url from music where id ="&id
set tset=tdb.execute(SQL)
if tset.eof then
response.end
else
‘##### 更新数据库中歌曲的下载次数 #####
SQL=update music set total_down=total_down
+1 where id ="&id
tdb.execute(SQL)
downfile=tset(url")
tdb.close
set tset=nothing
set tdb=nothing
end if
if downfile=" or isnull(downfile) then response.end
downfile=http://"+downfile
‘##### 下载相应歌曲 #####
response.redirect(downfile)
response.end
%>
----以上步骤就构建了一个基本的音乐服务器。当然,一个完整的音乐服务器还可以包括歌手信息、歌迷论坛、聊天室、投票站、娱乐新闻网等等功能,都可以用ASP一一实现。本文限于篇幅,不再详细讨论。只要前台页面采用独特的风格设计和完善的JavaScript程序控制,后台编程运用灵活的SQL语句和强大的ASP组件,加之规划周到的Web数据库和丰富的创意,就能构建一个完美的音乐服务器。有兴趣的朋友不妨试试看,你会创造一个奇迹的!