在线音乐网站【03】Part one 功能实现-阿里云开发者社区

开发者社区> 文艺小青年> 正文

在线音乐网站【03】Part one 功能实现

简介:
+关注继续查看

7.网站主要模块实现

a.在线音乐前台

  由于在线音乐网站要提供用户在线音乐的相关服务,当用户打开网站时,引入眼帘的是首页,所以首页的对于整个网站来说是非常重要的一个页面,首页排版和设计的美观与否将直接影响到游客的浏览和用户的注册。首页不仅要实现各种功能的展示,而且还要着眼于系统整体风格,能让首页做到功能完善,页面简洁美观。

  网站前台有歌曲排行榜展示、专辑排行榜展示、歌手排行榜展示、用户登录和注册、系统歌曲搜索、试听排行榜歌曲和下载排行榜歌曲、我的收藏等功能。程序运行结果如图7.1所示。

   
图7.1 前台主界面图

实现过程:

  1)在进入音乐排行榜、专辑排行榜、歌手排行榜、我的收藏等功能时,实现AJAX技术效果,不刷新整个页面,只是异步刷新相应的排行表格数据,这样在增强用户体验的同时,也最大化的保证了已经登录的用户信息的安全,关键代码如下:

复制代码
$(function () {
            l(1);
        })
        function l(m) {
            $.ajax({
                type: "post",
                url: "ajaxmlist.aspx",
                data: "id=" + m,
                success: function (msg) {
                    if (m == "1") {
                        $("#ltitle").html("音乐排行榜")
                    }
                    if (m == "2") {
                        $("#ltitle").html("专辑排行榜")
                    }
                    if (m == "3") {
                        $("#ltitle").html("歌手排行榜")
                    }
                    if (m == "4") {
                        $("#ltitle").html("我的收藏")
                    }
                    //将数据放入LIST中
                    $("#mlist").html(msg);
                }
            })
        }
复制代码

  2)首页的登录区,可以在用户提交登录信息后,将信息与用户数据表中对比,并判断是用户还是管理员,并做出不同的页面跳转动作,关键代码如下:

复制代码
 Session["type"] = "";
            Session["userId"] = "";
            string sql = "select password,[type] from [user] where userId=@userId";
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.Add("@userId",SqlDbType.NChar).Value = userId.Text.Trim();
            cmd.Connection.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            string passwd = "";
            if (dr.Read())
            {
                passwd = dr.GetString(0);
                if(passwd.Trim().ToString() == Password.Text.Trim().ToString())
                {
           Session["userId"] = userId.Text.ToString();
           if (dr.GetString(1).Trim().ToString() == "admin")
           Response.Redirect("~/musicChange.aspx?userId=" + userId.Text.ToString() + "");
                    else
                        Response.Redirect("Default.aspx");
                }
            }
            else {
                Session["userId"] = null;
                Session.Clear();
                FailureText.Text = "账号或密码错误,登录失败!";
            }
复制代码

 

b.歌曲的试听和下载 

  当用户进入在线音乐网站时,可以试听歌曲排行榜的任何一首歌曲,如下图7.2,同时也可以把它下载到本地电脑上面如图7.3。  

       

图7.2 歌曲试听界面       

              

图7.3 歌曲下载界面

1)试听功能的实现过程

在音乐排行榜数据表格中,定义如下代码:

<a href='playlist.aspx?id="+ dt.Rows[i]["id"].ToString() + "' target='_blank' >"

用户点击歌曲名称是进入歌曲试听界面,程序将通过歌曲ID,获取歌曲文件路径,并传递给播放器,关键代码如下:

复制代码
string path = new DirectoryInfo(Server.MapPath("")).FullName.ToString() + @"\file\" + updateMusic();
            string str = path.Replace('\\', '/');
            fileUrl = str;
            update_album();
            update_singer();
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
            string sql = "select * from [music]";
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Connection.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                    ListItem listItem = new ListItem { Value = dr.GetString(0), Text = dr.GetString(1) };
                    Select1.Items.Add(listItem);        
            }
            Select1.Items[0].Selected = true;
            dr.Close();
            cmd.Connection.Close();
复制代码

2)下载功能的实现过程

在音乐排行榜数据表格中,定义如下代码:

<a href='downLoadList.aspx?id=" + dt.Rows[i]["id"].ToString() + "'>下载</a>

当用户点击下载按钮后,程序将通过歌曲ID,获取到歌曲的文件路径,并通过Response对象将文件写出,关键代码如下:

复制代码
string m_name = downMusic();
            string path = new DirectoryInfo(Server.MapPath("")).FullName.ToString() + @"\file\" + m_name;
            string str = path.Replace('\\', '/');
            update_album();
            update_singer();
            System.IO.FileInfo file = new System.IO.FileInfo(str);

            if (file.Exists)
            {
                Response.Clear();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(m_name)));
                Response.AddHeader("Content-Length", file.Length.ToString());
                Response.ContentType = "application/octet-stream";
                Response.Filter.Close();
                Response.WriteFile(file.FullName);
                Response.End();
            }

            else
            {
                Response.Write("This file does not exist.");
            }
            Response.Redirect("Default.aspx");
复制代码

 

c. 歌曲模糊搜索功能

  当用户只记得歌曲名、专辑、歌手的一部分的时候,在线音乐网站采用了模糊搜索,同样可以搜到你想听的歌曲,如图7.4所示。

 

图7.4 搜索

实现过程:

  用户在搜索框中输出文本时,当点击搜索按钮时,会触发search_btn_Click事件,同时会将文本和搜索类型传入搜索页面的dataBind方法中,通过使用查询数据库含有like '%'的语句,可以实现对歌曲的模糊搜索,关键代码如下:  

复制代码
if (type.Equals("music"))
            {
cmd.CommandText = "SELECT * FROM [music] WHERE(musicName like '%'+@musicName+'%') ORDER BY count DESC";
cmd.Parameters.Add("@musicName", SqlDbType.NChar).Value = name;
            }
 else if(type.Equals("singer"))
            {
cmd.CommandText = "SELECT * FROM [music] WHERE(singer like '%'+@singer+'%') ORDER BY count DESC";
cmd.Parameters.Add("@singer", SqlDbType.NChar).Value = name;
            }
            else
            {
cmd.CommandText = "SELECT * FROM [music] WHERE(album like '%'+@album+'%') ORDER BY count DESC";
cmd.Parameters.Add("@album", SqlDbType.NChar).Value = name;
            }
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            SqlCommandBuilder sqlcb = new SqlCommandBuilder(da);
            DataSet ds = new DataSet();
            da.Fill(ds, "music");
            if (ds.Tables["music"].Rows.Count > 0)
            {
                dg.DataSource = ds;
                dg.DataBind();
            }
            else
            {
                dg.Visible = false;
                msg.Text ="没有找到相关文件!";
            }
        }
复制代码

 本文转自Orson博客园博客,原文链接:http://www.cnblogs.com/java-class/p/4075484.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
9个功能强大的信息图制作网站
 如今信息图(infographic)已越来越多地用于我们的工作与学习中。它会帮助你把数据和信息以视觉化的形式迅速直观地传达给受众。本期的互动中国分享带来了9个功能强大的网站,这些在线网站可以帮助你制作信息图,便捷又迅速。
1100 0
BREW SDK 九大功能之其他服务
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6507738 帮助函数就是一种典型的其他服务。
495 0
Jsp+JavaBean+Servlet实现模拟银行账户存取款等功能的网站(实习第4-8天)
本来想学J2EE的3个经典框架(Spring + Struts +Hibernate),奈何负责实习的老师只讲了Jsp+JavaBean+Servlet,项目时间还蛮紧的,所以只用JJS实现了这个项目,后面寒假有时间的话再用SSH实现并完善这个网站吧。前几天抽时间学了点前端的东西,感觉还是有点麻烦的,前端做既漂亮又有良好的兼容性不是件太容易的事情,所幸现在觉得能够静下来学技术做开发是件
1308 0
在source insight中加入TortoiseSVN的功能
转帖自http://www.study-bbs.com/thread-37492-1-1.html   我经常在写代码时要看一下修改记录,以前一般是在文件夹中找到这个文件然后查看修改记录,这种方法太麻烦了。
723 0
网站建设教程:PageAdmin网站系统标签功能的实现
司之前老网站采用的织梦网站系统,由于最近被黑客攻击导致挂马,并且官方停止了更新,领导要求新的网站采用pageadmin网站系统重新改版,小编在学习和使用中学到了有很多实用的技巧,其中标签这块制作很多做seo优化的朋友都会用到。
1381 0
如何实现网站的登录功能
如何实现网站的登录功能http://www.bieryun.com/4623.html 我记得我刚刚学习基本PHP的时候,我正在尝试创建一个基本的网站。除了一件事,我还想到了其他一切。我想在我的网站上实现登录功能,我不知道该怎么做。
1979 0
VMware备份文件即时恢复功能全新发布
HBR的VMware备份/恢复都是整机维度的,但是有些时候,我们或许只想要恢复备份中的某个文件,这样在恢复一个完整的虚拟机就有点高射炮打蚊子了。我们能不能直接从备份的数据里捞出来想要的文件呢?文件级恢复的功能便应运而生。
176 0
3364
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载