在线音乐网站【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,如需转载请自行联系原作者

相关文章
|
11月前
|
人工智能 机器人 Go
无需安装SD,QuickQR.Art艺术二维码保姆级教程!(营销新风口)
无需安装SD,QuickQR.Art艺术二维码保姆级教程!(营销新风口)
253 0
|
8天前
|
小程序 前端开发
微信综合购物商城小程序ui模板源码
微信电商小程序前端页面,综合购物商城ui界面模板。主要功能包含:电商主页、商品分类、购物车、购物车结算、我的个人中心管理、礼券、签到、新人专享、专栏、商品详情页、我的订单、我的余额、我的积分、我的收藏、我的地址、我的礼券等。这是一款非常齐全的电商小程序前端模板。
22 4
|
2月前
|
JavaScript 小程序 Java
基于微信小程序的校园自助打印系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的校园自助打印系统的设计与实现(源码+lw+部署文档+讲解等)
|
2月前
|
JavaScript Java 测试技术
基于微信小程序的外卖点餐系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的外卖点餐系统的设计与实现(源码+lw+部署文档+讲解等)
|
2月前
|
Go
区域代理分红商城系统开发指南教程/步骤功能/方案逻辑/源码项目
The development of regional proxy dividend distribution mall system involves multiple aspects such as proxy dividend function and electronic mall system development. The following is an overview of the steps for developing a regional agent dividend distribution mall system
|
10月前
|
自然语言处理 安全
Web3.0钱包系统开发(开发功能)/指南教程/步骤流程/方案设计/项目逻辑/规则玩法/案例源码
Wallet type selection: Determine the type of wallet, which can be a browser plugin wallet, mobile application wallet, or online web wallet. The choice of wallet type should be based on the target user group and usage environment.
|
2月前
|
存储 固态存储 安全
PACS系统源码,医学图像处理和分析系统
PACS部分主要提供医学影像获取、影像信息网络传递、大容量数据存储、影像显示和处理、影像打印等功能。RIS主要提供分诊登记、叫号、检查报告生成和打印等功能。影像存储与传输系统将二者进行无缝对接,提供了一个完整的集患者登记、图像采集、图像存储、报告产生的影像检查诊疗业务流程。
|
10月前
|
存储 前端开发 测试技术
同城交友开发稳定版丨同城交友app系统开发详细程序/案例设计/方案逻辑/规则详情/源码设计
需求分析:明确系统的功能、特点和目标受众,并根据市场需求进行需求调研,从中提取核心功能和关键需求。
|
11月前
移动端购物车模块设计
移动端购物车模块设计
73 0
|
前端开发 API 图形学
元宇宙虚拟社区交友软件APP开发规则详情及源码示例
元宇宙虚拟社区交友软件可以使用开源框架搭建,如React Native,Unity或者Xamarin等,也可以使用现有的虚拟化平台如 OVH、River, RuXen, XSquaredClipse, Shenandoah Valley等。